Das*_*roy 0 linux script terminal bash command-line
当我更改脚本中的工作目录并执行它时,工作目录仅更改为脚本中的指定路径。这是我的脚本:( 这是为了确保它是否确实更改了目录)
#!/bin/bash
cd /media/hard/drive/partitionX/
pwd
当我执行它时,它返回指定的路径,但我在终端中的工作目录没有改变。如何通过脚本更改终端中的工作目录?
这个是正常的。“当前”或“工作”目录是每个进程的参数,进程只能更改自己的工作目录。独立脚本作为单独的 shell 进程执行,不会影响父 shell(事实上,父 shell 可能并不总是shell)。
您将需要使用 shell 内部的功能,例如:
外壳功能:
mycd() {
cd /media/hard/drive/partitionX/;
pwd;
}
Run Code Online (Sandbox Code Playgroud)外壳别名:
alias mycd='cd /media/hard/drive/partitionX; pwd'
Run Code Online (Sandbox Code Playgroud)“获取”脚本而不是执行它:
. mycd.sh
Run Code Online (Sandbox Code Playgroud)如果您的主要目标是创建某些目录的快捷方式,您还可以使用:
符号链接位于更方便的位置:
ln -s /media/hard/drive/partitionX ~/partX
cd ~/partX
Run Code Online (Sandbox Code Playgroud)变量($mydir):
mydir=/media/hard/drive
cd $mydir
Run Code Online (Sandbox Code Playgroud)$CDPATH 功能:
CDPATH=".:/media/hard/drive"
cd partitionX
Run Code Online (Sandbox Code Playgroud)