我在名为 的文件中有一个命令列表cmds
,每行一个命令。
我想获取最后一个命令,将其设置在变量中last_command
并稍后运行。与$last_command
或"$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
文件名的一部分,并给我一个错误。
答案1
假设您在文件中的命令是正确的并且所有必需的空格都逃脱了邪恶,eval
这将对您有所帮助。而不是$last_command
执行这个:
eval $last_command
附言。eval
通常不被视为最佳实践,因为它很容易导致安全问题。