LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1077|回复: 3

求教:脚本内su user后,无法执行后序命令。

[复制链接]
发表于 2010-3-24 22:02:56 | 显示全部楼层 |阅读模式
[root@sid1 /etc/namedb]# cat update_d2.sh
1 #!/bin/sh
2 su lining
3 echo 'test'
4 scp myconfig.ini lining@d2.myconfig.com

如果我按顺序分别执行以上4行代码,结果完全符合预测。
不过,如果我执行 ./update_d2.sh。貌似只执行了第1,2行代码
发表于 2010-3-24 23:58:52 | 显示全部楼层
因为你su过去了之后没有退出,当然也就不会执行下面的语句。
shell脚本是逐行执行的.

逐行...
回复 支持 反对

使用道具 举报

发表于 2010-3-25 21:43:30 | 显示全部楼层
你的目的是想要su执行一些命令吧?用su -c ‘command‘解决。
1 #!/bin/sh
2 su lining -c 'echo test'
3 su lining -c 'scp myconfig.ini lining@d2.myconfig.com'
将上面的单引号括号里面的命令用都好分割,合在一个单引号里面也可以。
回复 支持 反对

使用道具 举报

发表于 2010-4-2 14:45:30 | 显示全部楼层
#!/bin/sh
su -l lining -c "
echo 'test'
scp myconfig.ini lining@d2.myconfig.com
"
看下这样能执行吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表