是否可以从脚本更改当前目录?
我想在Bash中创建一个目录导航实用程序。我创建了一个测试脚本,如下所示:
#!/bin/bash
cd /home/artemb
当我从Bash shell执行脚本时,当前目录不会改变。是否有可能从脚本更改当前shell目录?
是否可以从脚本更改当前目录?
我想在Bash中创建一个目录导航实用程序。我创建了一个测试脚本,如下所示:
#!/bin/bash
cd /home/artemb
当我从Bash shell执行脚本时,当前目录不会改变。是否有可能从脚本更改当前shell目录?
当前回答
把上面的内容放在一起,就可以创建一个别名
alias your_cmd=". your_cmd"
如果你不想每次都写开头的"." 你想把你的脚本源到shell环境, 或者如果你只是不想记住,那就必须这么做 脚本才能正确工作。
其他回答
使用pushd,当前目录被推送到目录堆栈上,并被更改为给定的目录,popd获取堆栈顶部的目录并更改为该目录。
pushd ../new/dir > /dev/null
# do something in ../new/dir
popd > /dev/null
我已经做了一个脚本来更改目录。来看看:https://github.com/ygpark/dj
启动脚本时,将创建一个只继承您的环境的新进程。当它结束时,它就结束了。您当前的环境保持不变。
相反,你可以这样开始你的脚本:
. myscript.sh
的。将评估当前环境中的脚本,因此它可能会被更改
在你的shell脚本中添加以下cd行:
exec $SHELL
把上面的内容放在一起,就可以创建一个别名
alias your_cmd=". your_cmd"
如果你不想每次都写开头的"." 你想把你的脚本源到shell环境, 或者如果你只是不想记住,那就必须这么做 脚本才能正确工作。