variable 是变量名 $variable 是变量值 ${variable} unset 变量名 清除变量的值 variable ? value / variable : ?value 对未赋值的 variable,显示系统错误信息 variable:= value 对未赋值的 variable,把value 值赋给它 variable :-value 对未赋值的 variable,把value 值赋给它,但不保存在其空间地址上 只读变量,不能改值 variable =value readonly variable 妈的,变量赋值与之相关的,居然不让给有空格,真扯蛋 变量默认是字符型的,所以如果要进行四则运行, 则如下: a=number; let "a+=10" echo $a declare -i 变量名 把变量转为整形,其实当进行四则运算时,才会实现真正的转换 declare -r 变量名 把变量设置为只读 变量是无类型的,是弱类型的,所以如果没有定义或为空的变量,默认为字符0/数字0 列出所有的全局变量 env 声明一个为全局变量 APPSPATH=/usr/local #声明一个变量 export APPSPATH # 声明为全局变量 echo $APPSPATH 清除环境变量 unset APPSPATH 其中 PATH全局变量是记录了可执行的文件路径,每个路径是用冒号分开,如果要添加新的路径,可以用 export PATH = "/新目录名":$PATH 参数: ($0表示脚本名,) $1....n 表示第几个参数 $*/[email protected]:表示所有的参数 $#表示参数的总数 $?表示是否有错误,无时则返回0, bash.sh内容如下: #!bash.sh echo "the script name is $0" echo "the first paramter is $1" echo "the total paramters is $#" echo "the paramters are [email protected]" echo "the paramters are $*" 单引号,双引号 单引号不解释变量,并且不会输出格式化的,如PHP中的源代码与浏览器的一样,双引号会解释其中的变量,并连格式化也一并输出 变量在命令替换上有三种情况可以使用: $var/$(var)/`var` 其中`var`不格式化 $var 格式化 $(var)自定义变量中无法使用 退出,查看是否上一步的操作是否有错误 echo $? 如果没有错误,则为 0 num1=100 num2=99 $num1 -eq $num2 :如果相等,则 echo $? 为0 $num1 -ge $num2 : 如果num1 >= num2,则echo $? 为0 $num1 -gt $num2; 如果是 num1 > num2,则 echo $? 为0 $num1 -le $num2, $num1 -lt $num2, $num1 -neq $num2 类似 以上只适用于整数来说的,对于浮点数不行,有专门的函数可用 以上还可以用 [ "$num1" -eq "$num2" ]来代替 test $num1 -eq $num2,方括号之间必须要有空格分格 字符测试 string:测试字符串 string 是否不为空,此字符不能用 [ "$string" ] -n string:测试字符串string是否不为空 -z string:测试字符串 string是否为空 string1=string2:测试两字符是否相等 string1!=string2:测试两字符是否不相等 测试文件 test -d file 测试file 是否目录 test -e file 测试file 是否存在 test -f file 测试 file 是否为文件 test -r file 测试file 是否是进程可读文件 test -s file 测试file 的长度是否不为0 test -w file 测试file 是否是进程可写文件 test -x file 测试file 是否是进行可执行文件 test -L file 测试file 是否符号化链接 逻辑运算 ! expression 为非 -a expression 为 and -o expression 为or 条件判断 if express then string fi 或者 if express;then string fi 可以嵌套 if expression then if express then else .... fi else ... fi 或者: if express then ... elif expression then .... elif expression then ... else ... fi case 语法 case "$var" in value1) ....;; value2) ...;; .......... *) ........ esac as: #!/bin/bash echo "input a number" read ok case "$ok" in 1) echo "1";; 2) echo "2";; *) echo "0000" esac exit status 可自定义,在文档中用 echo $?可测试其中的输出值
时间: 2024-11-06 07:42:19