如何从Linux Shell运行与当前工作目录不同的程序?
使用 ,如何从与当前工作目录不同的工作目录启动程序?
例如,我有一个二进制文件helloworld
,可hello-world.txt
在 中创建该文件。
该文件在目录内/a
。
目前,我在目录中/b
。我想开始运行程序,../a/helloworld
并hello-world.txt
在第三个目录中找到某个位置/c
。
回答:
像这样调用程序:
(cd /c; /a/helloworld)
括号导致生成子壳。然后,该子shell将其工作目录更改为/c
,然后helloworld
从执行/a
。程序退出后,子Shell终止,返回到您从其开始的目录中的父Shell提示符。
为了避免在不更改目录的情况下运行程序,例如,拼写错误时/c
,请执行以下helloworld
条件:
(cd /c && /a/helloworld)
为了避免在hello world执行期间子外壳浪费内存,请helloworld
通过exec 调用:
(cd /c && exec /a/helloworld)
[感谢Josh和Juliano提供改善此答案的提示!]
以上是 如何从Linux Shell运行与当前工作目录不同的程序? 的全部内容, 来源链接: utcz.com/qa/429428.html