系统运维
本文适用于以下主题:
Unix & Linux convert string to command
UNIX & Linux 将字符串转换成命令执行
Linux sh脚本中怎样将字符串转化为命令
答案:
在shell脚本中使用eval命令(此命令是bash的内置命令,凡是bash的内置命令查看帮助时用man eval),而不是exec。
语法:
eval 参数
参数可以为一组命令的字符串,如“eval yum install dstat–y ”,如果不加参数直接执行eval也可以,返回错误代码依旧为0(成功执行),但没有意义。
为什么不用exec?
因为exec在执行一次后自动退出当前shell脚本,导致在exec后的所有行全部忽略。
为什么exec会自动退出?
exec不启动新的shell,而是用将后面所跟的命令替换当前的shell(当前运行的脚本或登录会话)的进程。