加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – Unix将多个命令分开,最后有’&'(在后台执行)

发布时间:2020-12-13 16:49:04 所属栏目:Linux 来源:网络整理
导读:在Unix中分离常规命令是将分号放在最后,如下所示: cd /path/to/file;./someExecutable; 但它似乎不适用于这样的命令: ./myProgram1 /dev/null ./myProgram2 /dev/null =./myProgram1 /dev/null ;./myProgram2 /dev/null ; 有没有办法分开这些命令? 另外,
在Unix中分离常规命令是将分号放在最后,如下所示:
cd /path/to/file;./someExecutable;

但它似乎不适用于这样的命令:

./myProgram1 > /dev/null &
./myProgram2 > /dev/null &
=>./myProgram1 > /dev/null &;./myProgram2 > /dev/null &;

有没有办法分开这些命令?

另外,如果我复制粘贴到命令提示符,如果低于2的情况是等效的?谢谢.

cd /path/to/file;./someExecutable;

cd /path/to/file;
./someExecutable;

解决方法

那么“;”使shell等待命令完成,然后继续执行下一个命令.

“&”将任何进程直接发送到后台并继续执行下一个命令 – 无论第一个命令是否已完成或仍在运行.

所以“&amp ;;”不会像你期望的那样工作.

但实际上我不确定你的期望.

在你的shell中尝试这个:

sleep 2 && echo 1 & echo 2 & sleep 3 && echo 3

它将输出:
2
1
3

现在比较它

sleep 2 ; echo 1 & echo 2 & sleep 3 ; echo 3

哪个会输出
1
2
3

问候.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读