Dash
如何不分詞
我在一個名為 的文件中有一個命令列表,
cmds
每行一個命令。我想獲取最後一個命令,將其設置為變數
last_command
並稍後執行。用$last_command
or"$last_command"
,或者任何更合適的。我首先得到最後一個命令:
$ last_command="$(cat cmds | tail -1)" $ echo $last_command cat file1 file2 file\ 3
的最後一行
cmds
是cat cat file1 file2 file\ 3
.問題是,當我執行時
"$last_command"
,它不會知道和之間的空格file
是3
文件名的一部分並給我一個錯誤。
假設您在文件中的命令是正確的並且所有必需的空格都逃脫了邪惡
eval
將幫助您。而不是$last_command
執行這個:eval $last_command
PS。
eval
通常不被視為最佳實踐,因為它很容易導致安全問題。