這個命令你看得懂麽
阿新 • • 發佈:2018-09-26
使用 變量賦值 hist 腳本 輸入 變量 pre echo 字符 直接上命令
history 1 | { read x cmd; echo “$cmd”; }
對於read命令的了解,僅限於在shell腳本中使用read -p,對於這種用法從來沒用過,更不知道它的含義。
今天抽空琢磨了一下,終於搞明白了來龍去脈。先來寫幾個命令吧:
# read a b c
1 2 3
# echo $a
1
# echo $b
2
# echo $c
3
# read x y
1 2 3
# echo $x
1
# echo $y
2 3
到這,也許你似乎看出一些門道了。read命令,後面跟的是變量名,可以是1個,也可以是多個,用空格分隔。回車後,輸入的字符就是在給這些變量賦值,輸入的字符串也需要用空格分隔,如果和上面的變量名一個一個地對應,那麽這樣就一個一個地賦值了。
如果沒有對應呢?通過上面的命令也可以發現,如果值比變量多,它只對應前面的。例如,變量只有x和y,而值是1 2 3,則它把x賦值1,後面的2 3一股腦賦值給最後面的變量y。
再來一個例子吧。
# echo 1 2 3 4 5|read a b c
# echo $a
1
# echo $b
2
# echo $c
3 4 5
再回頭看這條命令:history 1 | { read x cmd; echo “$cmd”; }
管道前面,history 1表示取最後一條命令。管道後面‘{ }’內是一整體,相當於一個函數,函數裏面可以有多條命令,用分號分割,而且最後一條命令也必須加分號。第一條命令和‘{‘之間必須要有空格。
這個命令你看得懂麽