如何从脚本更改当前目录?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

是否可以从脚本更改当前目录?

我想为bash中的目录创建一个util。我创建了如下所示的测试脚本:

#!/bin/bash
cd /home/artemb

当我从bash shell执行脚本时,当前目录不会改变。是否有可能从脚本中更改当前shell目录?

提问于
用户回答回答于

需要将脚本转换为shell函数:

#!/bin/bash
#
# this script should not be run directly,
# instead you need to source it from your .bashrc,
# by adding this line:
#   . ~/bin/myprog.sh
#

function myprog() {
  A=$1
  B=$2
  echo "aaa ${A} bbb ${B} ccc"
  cd /proc
}

用户回答回答于

当你启动脚本时,会创建一个只继承你的环境的新进程。当它结束时,它结束。你当前的环境保持原样。

相反,你可以像这样使用你的脚本:

. myscript.sh

扫码关注云+社区