【发布时间】:2014-05-26 05:28:56
【问题描述】:
#!/usr/bin/ksh
if [ $# -ne 1 ]; then
echo "[*]\t Please see usage..."
echo "[*]\t Usage: $0 <store_number>"
exit 1
fi
if [ -z "$1" ]; then
echo "[*]\t Please see usage..."
echo "[*]\t Usage: $0 <store_number>"
exit 1
fi
Store_Number=$1
EPS_Directory="/apps/epsadmin_90000"$Store_Number"/EPS"
cd $EPS_Directory
我正在尝试编写一个简单的脚本来更改我的主 shell 中的目录。 我可以在子 shell 中更改目录(如上所示),但很明显,当脚本运行完成后,它会将我踢回外壳,我又回到了原来的目录中。
是否可以从子外壳中将命令传递给外壳?我可以将 cd 命令传递给外壳吗?
例如,如果我运行:
./cd.sh 2001
我希望我的目录是:
/apps/epsadmin_900002001/EPS
一旦我回到外壳。
【问题讨论】:
-
每个进程(子shell,运行脚本)都有自己的自己的 当前目录。另见:Why cd doesn't work in a bash shell script
标签: shell scripting ksh cd subshell