如何从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
