Linux中单行上的多个命令

Linux中单行上的多个命令,第1张

概述我想在命令行上运行几个命令. 在通常情况下,这很简单: #cd /home && ls && echo "OK"root web supportOK 然而,当其中一个命令结束于&这似乎不起作用: #killall vsftpd && /usr/sbin/vsftpd & && echo "OK"-sh: syntax error: unexpected "&&"OK 我试过没有单一 我想在命令行上运行几个命令.

在通常情况下,这很简单:

#cd /home && ls && echo "OK"root   web   supportOK

然而,当其中一个命令结束于&这似乎不起作用:

#killall vsftpd && /usr/sbin/vsftpd & && echo "OK"-sh: Syntax error: unexpected "&&"OK

我试过没有单一的尾随&但这显然会阻止后者回声的处理.只是为了好玩,尝试了三重奏和但这也会返回错误.

所以我的问题;我怎样才能得到

killall vsftpd/usr/sbin/vsftpd &echo "OK"

在一条线上执行?

解决方法 首先,如果要在一行中运行多个命令,请将它们分隔为;:

cmd1 ; cmd2 ; cmd3

和&&是逻辑和 *** 作符.如果你发行

cmd1 && cmd2

cmd2仅在cmd1成功时运行.这一点很重要(见下文).

如果您使用&在后台运行命令只需附加下一个命令而不用;分隔符:

cmd1 & cmd2

&在这种情况下,它不是逻辑运算符,它告诉bash在后台运行cmd1.

在您的情况下,命令行在语法上需要如下所示:

killall vsftpd && /usr/sbin/vsftpd & echo "OK"

但是,我猜你真的是这个意思:

killall vsftpd ; /usr/sbin/vsftpd & echo "OK"

因为否则你将无法启动该进程(如果它尚未运行),因为killall将返回非零返回代码.

即使这样,代码也非常脆弱.我建议使用您的 *** 作系统工具启动vsftp作为守护进程.我的意思是命令start-stop-daemon之类的设施.

总结

以上是内存溢出为你收集整理的Linux中单行上的多个命令全部内容,希望文章能够帮你解决Linux中单行上的多个命令所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1023661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存