路徑名展開
ls
echo *
echo doc*
echo /usr/*/share
波浪線展開
echo ~ 展開用戶家目錄
算術表達式展開
$((expression))
echo $((1*2)) $((2**5)*6)
花括號展開:多用於批量創建文件
echo {A,B,C} => A B C
echo {A..Z} => A B C ...Z
echo {0..9} => 0 1 2 ...9
echo a{A{1,2},B{3,4}}b => aA1b aA2b aB3b aB4B
mkdir {2007..2009}-0{1..9} {2007..2009}-1{0..2} =>2007-01 2007-02 ...2009-12
參數展開
echo $USER $HOSTNAME
printenv // 打印所有環境變量
命令替換:可以把一個命令的輸出當做展開模式來使用
echo $(ls)
duoyi@yang:~$ ls -l $(which cp)
-rwxr-xr-x 1 root root 151024 3月 3 2017 /bin/cp
引用:雙引號:雙引號內除了$ ,(反斜槓),’(倒引號)三個特殊字符,其他shell特殊字符均失效。即單詞分割,路徑名展開,波浪線展開,花括號展開都被禁止。但參數展開,算數展開,命令替換依然有效。
ls -l "test 123.txt" //顯示空格文件
echo "$USER" "$((1+1))" "$(pwd)" => yang 2 /home/duoyi
echo "{A..Z} * ~" => {A..Z} * ~
引用:單引號:禁用所有展開
echo '$USER' => $USER