Linux下使用Shell脚本改变当前工作路径
2015-05-21 18:50
585 查看
转载:http://edu.cnzz.cn/200805/60620b3b.shtml
问题:
Shell 脚本执行有三种方法 bash 脚本名 sh 脚本名 chmod +x 脚本名 使用下面语句测试 #a.sh(扩展名可不要) cd / pwd echo "complete" 然而具体执行时候,发现过程中改变过路径,然而最终结果是并没有改变路径。
Shell 脚本执行有三种方法
bash 脚本名
sh 脚本名
chmod +x 脚本名
使用下面语句测试
#a.sh(扩展名可不要)
cd /
pwd
echo "complete"
然而具体执行时候,发现过程中改变过路径,然而最终结果是并没有改变路径。
[fedora@localhost ~]$ bash a.sh
/
complete
[fedora@localhost ~]$
原因分析:
执行脚本时候,只是在当前的shell下开了一个子进程,切换目录的操作只对该进程中相关后续指令有效,但改变不了父进程的目录。
解决方法:
法一:
用 source a.sh就行了。
法二:
[fedora@localhost ~]$ cd ~
[fedora@localhost ~]$ chmod u+x a.sh
[fedora@localhost ~]$ . ./a.sh
/
complete
[fedora@localhost /]$
对于 $ . ./a.sh
第一个点是bash的内部命令,表示在当前shell中运行
后面的“./a.sh”是命令的参数,即要执行的脚本
注:两点之间要有空格
问题:
Shell 脚本执行有三种方法 bash 脚本名 sh 脚本名 chmod +x 脚本名 使用下面语句测试 #a.sh(扩展名可不要) cd / pwd echo "complete" 然而具体执行时候,发现过程中改变过路径,然而最终结果是并没有改变路径。
Shell 脚本执行有三种方法
bash 脚本名
sh 脚本名
chmod +x 脚本名
使用下面语句测试
#a.sh(扩展名可不要)
cd /
pwd
echo "complete"
然而具体执行时候,发现过程中改变过路径,然而最终结果是并没有改变路径。
[fedora@localhost ~]$ bash a.sh
/
complete
[fedora@localhost ~]$
原因分析:
执行脚本时候,只是在当前的shell下开了一个子进程,切换目录的操作只对该进程中相关后续指令有效,但改变不了父进程的目录。
解决方法:
法一:
用 source a.sh就行了。
法二:
[fedora@localhost ~]$ cd ~
[fedora@localhost ~]$ chmod u+x a.sh
[fedora@localhost ~]$ . ./a.sh
/
complete
[fedora@localhost /]$
对于 $ . ./a.sh
第一个点是bash的内部命令,表示在当前shell中运行
后面的“./a.sh”是命令的参数,即要执行的脚本
注:两点之间要有空格
相关文章推荐
- Linux下使用Shell脚本改变当前工作路径
- Linux下使用Shell脚本改变当前工作路径
- Linux下使用Shell脚本改变当前工作路径
- 如何使用shell脚本改变当前工作路径
- 为什么linuxC程序设计中不能使用system("cd ..")来改变当前工作路径而用chdir()函数
- [Linux学习]Shell脚本(1)--函数,输入,if判断(持续更新)+删除空行 +保存当前路径
- python shell中python os模块实用函数(含改变当前工作路径、显示当前目录等)
- linux下设计一个Shell脚本:判断当前工作目录下所有的文件类型。
- dirname命令介绍-使用dirname在shell脚本中获取当前脚本文件所在的绝对路径
- 使用shell脚本显示出当前路径或者去掉目录路径
- 使用linux的shell脚本实现在当前行重复动态显示时间等字符串信息(不另起新行)
- python shell中改变当前工作路径
- 通过脚本改变当前的工作路径
- Linux中shell脚本获取当前工作目录
- 使用linux的shell脚本实现在当前行重复动态显示时间等字符串信息(不另起新行)
- linux中,shell脚本更改当前路径
- Linux中shell脚本获取当前工作目录的方法
- 【linux】Ubuntu中shell脚本无法使用source的原因及解决方法
- linux使用shell脚本安装redis 4.0.6
- linux下shell脚本中sed命令使用变量