腳本2種執行方式:
1 直接執行,等于bash衍生一個子程式,當該子程式完成後,子程式内各項變量活動作不會傳回父程式
2 利用source執行,直接在父程式中執行
X=/bin/xdo cmd
執行cmd指令,X已在其環境變量中了
bash中的空指令 :(冒号)
$# 腳本參數個數
$@ 全部獨立變量
$* 全部變量,中間用分隔符分開
$$ 目前pid
以數字計算 $((…)) 或者 declare -i a = $a+$b
kill -l 1234 >err.txt 2>&1
${#var} 傳回var值的字元數
for f in *
do;…;done
for((init;limit;step))
'grep ...' = $(grep ...)
read test=[ ]
if ...
then
elif ... ;then
else
fi
while [] do
...
done
until [] do
循環一行表示:
while [ ] ;do ...;done
在done後加&,即可将循環放在背景執行。同理放置重定向符或管道符,可以将某個循環重定向。
case val in
"…")
;;
“…”)
*)
esac
|| &&
is_ok && {...}
function func() {...}
break : continue . echo eval exec exit n export expr printf return set
shift 左移腳本參數
trap unset
[ -f .profile ] && exit 0 || exit do
find . -newer file0 -type f -print
$(($x+1))
function name {}
name(){}
return local
指令分組
(...) 在子shell中執行 :(x=10)
{...} 在目前shell中執行 : { x=10; }