我正在尝试执行,我认为是一个脚本中的简单shell命令。当我从命令提示符执行此操作时,它运行良好:
$ sudo cat /etc/sysconfig/network-scripts/ifcfg-en0 | grep "IPADDR"
IPADDR=192.168.1.10
但是,如果我把它放到shell脚本中:
#!/usr/bin/sh
my_command=`sudo cat /etc/sysconfig/network-scripts/ifcfg-en0 | grep "IPADDR"`
${my_command}
echo $?
我收到此错误:
$ sudo ./myscript.sh
./myscript.sh: line 3: IPADDR=192.168.1.10: command not found
那么,我怎样才能在shell脚本中成功执行这一行?
谢谢!
答案 0 :(得分:1)
您的案例中的问题是您正在执行命令的结果......
这一行在"``"之间执行代码。这是用于执行给定字符串作为命令的特殊字符:
my_command=`sudo cat /etc/sysconfig/network-scripts/ifcfg-en0 | grep "IPADDR"`
因此,$my_command
是" IPADDR=192.168.1.10
"
然后你试图第二次执行它:
${my_command}
这就是为什么你收到这个错误。没有" IPADDR=192.168.1.10
"。
只需使用$my_command
作为包含所需grepped部分的结果,然后跳过${my_command}
行:
#!/usr/bin/sh
my_command=`sudo cat /etc/sysconfig/network-scripts/ifcfg-en0 | grep "IPADDR"`
echo $my_command