Seb*_*ebi 2 linux bash shell working-directory
我想通过包含的另一个脚本更改我的脚本的工作目录。
第一个脚本:
#!/bin/bash
pwd
source script2
pwd
Run Code Online (Sandbox Code Playgroud)
Sedond脚本:
cd ..
pwd
Run Code Online (Sandbox Code Playgroud)
结果如下:
> ./script1
/home/sebi/testdir1/testdir2 # 1st script
/home/sebi/testdir1 # 2nd script
/home/sebi/testdir1 # 1st script
Run Code Online (Sandbox Code Playgroud)
我在测试这个脚本时编辑了这个问题,它按我想要的方式工作,但是以下脚本的工作方式不同,因为下标完成执行父级与调用下标之前位于同一目录中。
#!/bin/bash
while :
do
sleep 5
cat /home/.../shelldata.txt >> /home/.../gmodshell #logging
((source /home/..../shelldata.txt) 2>&1) | \
sed -e "s/..shellRunner.sh..line../SH/" > \
/home/..../shellFeedback.txt
echo > /home/..../shelldata.txt
done
Run Code Online (Sandbox Code Playgroud)
整个目标是使用文件访问 bash,这样我就可以将命令写入一个文件,一段时间后我在另一个文件中获得输出。
假设脚本 1 和 2 在同一目录中,尝试制作脚本 1:
#!/bin/bash
pwd
. ./script2
pwd
Run Code Online (Sandbox Code Playgroud)
在调用脚本之前放置点(我说的是第一个点,而不是作为您要调用的脚本的文件路径一部分的点)告诉 shell“在此过程中执行以下脚本而不是生成一个新的过程。”
在第二个脚本中执行的操作(如 cd-ing 或设置变量)将在第二个脚本结束后持续存在。
| 归档时间: |
|
| 查看次数: |
2050 次 |
| 最近记录: |