一、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