使用Linux shell,如何从当前工作目录启动具有不同工作目录的程序?
例如,我有一个二进制文件helloworld
,它在当前目录中创建文件hello-world.txt
。 该文件位于目录/a
。 目前我在目录/b
。 我想启动我的程序运行../a/helloworld
并在第三个目录/c
某处获取hello-world.txt
。
#1楼
为什么不保持简单
cd SOME_PATH && run_some_command && cd -
最后一个'cd'命令将带你回到最后一个pwd目录。 这适用于所有* nix系统。
#2楼
一个不需要子shell并且内置于bash的选项
(pushd SOME_PATH && run_stuff; popd)
演示:
$ pwd
/home/abhijit
$ pushd /tmp # directory changed
$ pwd
/tmp
$ popd
$ pwd
/home/abhijit
#3楼
只需将最后一个“&&”更改为“;” 无论命令失败还是成功,它都会回来:
cd SOME_PATH && run_some_command ; cd -
#4楼
从当前目录提供执行命令的脚本目录的完整路径
/root/server/user/home/bin/script.sh
#5楼
如果您始终希望它转到/ C,请在写入文件时使用绝对路径。
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3196173