一、shell脚本特别注意点
su root 可以切换成root 用户 shell编程 变量赋值时,等号两侧不能有空格!!! 注意 expr 运算符间要有空格 expr a + b 条件判断 : [ a>b ] []条件框 前后都要有空格 注意:$[] 这个 是获取表达式结果 []前后 不需要空格 (()) 出现在 运算式 循环式 中 while 循环后面 别忘记 打空格 while [ 条件判断式 ] do 程序 done =================================== 9.test或[]的使用,也不一定要有if 例如 #!/bin/bash var1=20 var2=22 [ "$var1" -ne "$var2" ] && echo "$var1 is not equal to $var2" home=/home [ -d $home ] || echo "$home directory does not exist" 注意: &&:前一个操作失败,后一个就不再执行 || : 前一个操作成功,后一个就不再执行 =================================== 在实际使用时,下面两种写法都是正确的。 date "+%Y_%m_%d_%H%M%S" date +%Y_%m_%d_%H%M%S ${ } 的一些特异功能: ${变量名} 和 $变量名 效果是一样的,只是为了显示好看点。 假设我们定义了一个变量为: file=/dir1/dir2/dir3/my.file.txt 我们可以用 ${ } 分别替换获得不同的值: ${file#*/}:拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt ${file##*/}:拿掉最后一条 / 及其左边的字符串:my.file.txt ${file#*.}:拿掉第一个 . 及其左边的字符串:file.txt ${file##*.}:拿掉最后一个 . 及其左边的字符串:txt ${file%/*}:拿掉最后条 / 及其右边的字符串:/dir1/dir2/dir3 ${file%%/*}:拿掉第一条 / 及其右边的字符串:(空值) ${file%.*}:拿掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file ${file%%.*}:拿掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my