是否可以从脚本更改当前目录?
我想在Bash中创建一个目录导航实用程序。我创建了一个测试脚本,如下所示:
#!/bin/bash
cd /home/artemb
当我从Bash shell执行脚本时,当前目录不会改变。是否有可能从脚本更改当前shell目录?
是否可以从脚本更改当前目录?
我想在Bash中创建一个目录导航实用程序。我创建了一个测试脚本,如下所示:
#!/bin/bash
cd /home/artemb
当我从Bash shell执行脚本时,当前目录不会改变。是否有可能从脚本更改当前shell目录?
当前回答
简单地去
yourusername/.bashrc (or yourusername/.bash_profile on MAC) by an editor
然后把下面的代码加到最后一行:
alias yourcommand="cd /the_path_you_wish"
然后退出编辑。
然后输入:
source ~/.bashrc or source ~/.bash_profile on MAC.
现在你可以在终端中使用:your命令
其他回答
使用pushd,当前目录被推送到目录堆栈上,并被更改为给定的目录,popd获取堆栈顶部的目录并更改为该目录。
pushd ../new/dir > /dev/null
# do something in ../new/dir
popd > /dev/null
这种方法对我来说更容易。
假设在个人iMac上,你是管理员,当打开命令窗口时,在默认目录下/Users/jdoe,这将是进入的目录:/Users/jdoe/Desktop/Mongo/db.3.2.1/bin。
下面这些步骤可以帮助你完成工作:
vi mongobin,我进去了: cd /Users/jdoe/Desktop/Mongo/db.3.2.1/bin作为第一行。 Chmod 755 mongobin 源mongobin 松材线虫病
拖鞋!
我喜欢为不同的项目做同样的事情,而不需要启动新的shell。
在你的情况下:
cd /home/artemb
保存为:
echo cd /home/artemb
然后启动它:
\`./the_script\`
然后使用相同的shell访问该目录。
这是以上答案的一个简化汇编。 创建shell文件shell .sh 在脚本中,在函数中更改目录
#!/bin/bash
cd folder1/folder2/
现在运行脚本。在这之前。 . 使用当前线程/会话执行脚本。
. shellfile.sh
如果您运行bash脚本,那么它将在其当前环境或其子环境上操作,而不会在父环境上操作。
如果目标是运行命令: goto.sh /home/test 然后在/home/test中交互式地工作,一种方法是在你的脚本中运行一个bash交互式子shell:
#!/bin/bash
cd $1
exec bash
这样,您将处于/home/test中,直到退出(退出或按Ctrl+C)这个shell。