我在一个名为 的文件中有一个命令列表,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
执行这个:PS。
eval
通常不被视为最佳实践,因为它很容易导致安全问题。