【问题标题】:Combine two commands for the same line in Linux在 Linux 中为同一行合并两个命令
【发布时间】:2018-07-07 23:57:19
【问题描述】:

我需要在终端的同一行中执行两个命令。但它只执行了第一个命令。

./build.py || cd /ns-3.20

该命令仅构建正在运行,并且不会导航到下一个目录。

我哪里错了?

【问题讨论】:

  • 使用; 对命令进行排序
  • 对于顺序执行使用./build.py; cd /ns-3.20| 用于链接命令(未命名管道)。
  • Running multiple commands in one line in shell 重复。在提出此类问题之前,请先搜索,甚至重新通过阅读终端的基本文档进行搜索。

标签: linux bash ubuntu-16.04


【解决方案1】:

| 更改为;

./build.py; cd /ns-3.20

【讨论】:

  • @M.David 那么你“不工作”出了点问题。那是什么意思?不工作不是问题,除非我们知道不工作是什么意思,错误?会发生什么?
【解决方案2】:

你可以使用 & :

 ./build.py & cd /ns-3.20

【讨论】:

  • [root@f]# echo test test [root@f]# echo test & echo test2 [1] 14396 test2 test [root@f]# echo test && echo test2 test test2 [1] + Fini 回声测试 [root@f]# true ; echo test test [root@f]# false ; echo test test [root@f]# false & echo test [1] 14436 test [root@f]# false && echo test [1]+ Termine 1 false [root@f]# true && echo test test
  • 这是相同的例子
【解决方案3】:

我可能会这样做:

./build.py && cd /ns-3.20

这样你只有在构建成功时才更改目录。

【讨论】:

    【解决方案4】:

    使用./build.py || cd /ns-3.20,您只有在第一个命令失败时才转到 /ns-3.20。
    /ns-3.20 是您可以访问的目录,并且有一些您需要修复构建的文件吗?
    如果您只想在成功后转到该目录,请使用&&。如果您希望与结果无关,请使用;

    【讨论】:

    • 你的错误是什么? cd /ns-3.20 是否有效,还是应该将其更改为 cd $HOME/ns-e.20./build.py 是否执行?试试echo "Test"; pwd;cd /tmp'pwd; cd;pwd
    【解决方案5】:

    试试下面的命令:

    (./build.py &) ; cd /ns-3.20
    

    【讨论】:

      猜你喜欢
      • 2015-03-06
      • 1970-01-01
      • 2013-03-10
      • 2012-10-29
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      相关资源
      最近更新 更多