如何从Linux Shell运行与当前工作目录不同的程序?

使用 ,如何从与当前工作目录不同的工作目录启动程序?

例如,我有一个二进制文件helloworld,可hello-world.txt在 中创建该文件。

该文件在目录内/a

目前,我在目录中/b。我想开始运行程序,../a/helloworldhello-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

回到顶部