我在3个不同的目录中有3个sh脚本。
我没有进入每个目录并执行每个脚本,而是想从一个中心脚本(位于上面的超级文件夹中)触发所有3个脚本。
我尝试使用/bin/bash /path/to/script
,但这会将超级文件夹位置视为可以使用的位置。
因此我尝试在执行前先进入每个文件夹cd folder1
,但这也无效。
我只想在不改变其本地环境的情况下触发这3个脚本
答案 0 :(得分:1)
请尝试以下方法:
( cd dir1; ./script1 )
( cd dir2; ./script2 )
( cd dir3; ./script3 )
请注意,保存/恢复主脚本当前目录需要()。
答案 1 :(得分:0)
使用子shell时,子shell退出当前shell时不会更改
( cd path ; ./script )
答案 2 :(得分:0)
执行此操作的* nix方法是使用您最初的完整路径或相对路径运行脚本。无论原始用户PWD
是什么,理想情况下脚本应该做同样的事情。如果您确实需要知道the working directory of the script,原因如采购相邻文件,请注意它会增加一些复杂性,并且可能无法在古老的Bash版本中使用。