脚本执⾏命令实例详解使⽤linux不免要⽤到执⾏脚本,⽐如⼀个⽂件a.sh,我们有时会见到⽤. a.sh 去执⾏,有时见到⽤sh a.sh 去执⾏,或者bash a.sh ,或者source a.sh ,那么这两种执⾏脚本的⽅式有什么区别呢?这个问题也困惑了本⼈很久,今天总结⼀下:
⾸先考虑这样⼦⼀种情况: 我的作⽤⽂件有时候路径⽐较长,为什么不创建⼀个脚本放在初始路径下,这样运⾏⼀下直接到到位,于是有了下⾯的welcome.sh ,内容为:
其中#! 是⼀个约定的标记,它告诉系统这个脚本需要什么解释器来执⾏,即使⽤哪⼀种 Shell。 echo 命令⽤于向窗⼝输出⽂本。保存到根⽬录下,执⾏ 1、. welcome.sh
linux循环执行命令脚本⽅法执⾏:
如图可见,两条语句都被执⾏,第⼀条执⾏输出第⼆条命令,第⼆条命令执⾏进⼊对应⽬录。 2、source welcome.sh ⽅法执⾏:
3、bash welcome.sh
⽅法执⾏:
4、sh welcome.sh ⽅法执⾏:
可以看出,.或source 对于脚本中的语句可以全部执⾏,但是sh 或bash 只能执⾏第⼀条语句,⽽且不管有没有解释器信息结果都是⼀样的哦,很奇怪的现象,现象解释:
这样执⾏的话终端会产⽣⼀个⼦shell(类似于C语⾔调⽤函数),⼦shell去执⾏我的脚本,在⼦shell中已经切换了⽬录了,但是⼦shell⼀旦执⾏完,马上退出,⼦shell中的变量和操作全部都收回。回到终端根本就看不到这个过程的变化。这种情况下可以使⽤.或source ⽅法解决哦,因为.或source 与加载资源类似,把脚本当作程序加载运⾏。所以推荐使⽤. a.sh ,source a.sh 执⾏脚本哦。#!/bin/bash
echo "cd /opt/jskp/jinjiwei"
cd /opt/jskp/jinjiwei
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论