否则变量var不为空时,则用变量var的值来替换${var:-string};对于${var:=string}的替换规则和${var:-string}是一样的,所不同之处是${var:=string}若var为空时,用string替换${var:=string}的同时,把string赋给变量var:${var:=string}很常用的一种用法是,判断某个变量是否赋值,没有的话则给...
${A[@]}或 ${A[*]}得到 a b cdef(全部数组)${A[0]}得到 a(第一个元素),${A[1]}第二个...${#A[@]} 或 ${#A[*]} 得到 4 (数组数量)${#A[0]} 得到 1 (第一个元素 a 的长度),${#A[3]} 得到 3 (第四个元素 def 的长度)A[3]=xyz 将第四个元素重新定义为 xyz $(( )...
Shell中exit和return的区别 1.exit命令 exit命令是Shell内建命令,用于退出当前Shell进程。使用格式如下: 代码语言:javascript 复制 exit[<n>] 可以指定退出状态n,n的取值范围是0-255,一般情况下,0表示正常退出,非零表示异常退出。如果状态码是0-255之外的数值,则会被强制转换为uint8_t类型的数值,比如-1会被转...
=和 == 用于字符串比较 -eq 用于数值比较 注意== 不是 POSIX 兼容的,在 sh(Bourne Shell) 或其兼容的 POSIX shell 中,== 用于字符串比较的操作符不是正式支持的。POSIX 规范和原始的 Bourne Shell 使用单个等号 = 作为字符串比较的操作符。在 Bourne Again Shell(bash) 、ksh 中,则两者都可以使用。
网上查了一些bash的单引号'',双引号""和反引号``的区别。 单引号''和双引号"" 两者都是解决变量中间有空格的问题。 在bash中“空格”是一种很特殊的字符,比如在bash中这样定义str=this is String,这样就会报错,为了避免出错就得使用单引号''和双引号""。
一、和$相关的语法 (一) 单纯的$变量名 当我们定义完一个变量后(或者是已知环境变量中存在的变量名),那我们就可以通过在变量名前面加$的方式来引用这些变量 下面我们用一个小案例来演示一下 #!/bin/bash field1=Hello field2=World echo $field1 ...
2.shell元字符 shell 除了有通配符之外,由shell 负责预先先解析后,将处理结果传给命令行之外,shell...
一、$@ 和 $* 介绍 在shell中,$* 表示把所有的参数看成一个整体,而$@ 表示把每个参数区分对待 二、$@ 和 $*案例比较 $*和$@都表示传递给函数或脚本的所有参数,不被双引号“”包含时,都以$1 $2 …$n的形式输出所有参数。 编写脚本 #!/bin/bash for i in $* do echo "wo shi $i " done for ...
Shell中获取昨天和多天前日期 1、获取今天日期 $ date -d now +%Y-%m-%d 或者 $ date +%F 2、获取明天日期 $ date -d next-day +%Y-%m-%d $ date -d tomorrow +%Y-%m-%d 3、获取昨天日期 $ date -d yesterday +%Y-%m-%d 或者 $ date -d last-day +%Y-%m-%d 或者 $ date -d "...
shell脚本之——数组在函数中传参并计算数组的和以及乘积,一、向函数传数组参数如果将数组作为函数的参数,函数只会取数组变量的第一个值1、格式#!/bin/bash#数组在函数中传参test(){echo"函数接收到的参数列表为:$@"newarr=($*)echo"新数组的值为:${newarr[@]}"}###