1. linux中shell脚本跟linux中命令有什么区别
$@:表示所有脚本参数的内容
$#:表示返回所有脚本参数的个数。
示例:编写如下shell脚本,保存为test.sh
#!/bin/sh
echo "number:$#"
echo "argume:$@"
执行脚本:
./test.sh first_arg second_arg
说明:给脚本提供了两个参数,所以$#输出的结果是2,$@代表了参数的内容!
2. 在脚本执行命令和直接在命令行执行命令有什么区别
直接在命令行执行 就是在当前的shell环境下执行 比如涉及到一些环境变量的时候 必须在当前shell环境里执行
在脚本里执行的话 脚本执行的时候 会fork一个子进程 所有操作都在子进程进行 如果涉及到一些在脚本里设置环境变量的东西 脚本结束了 环境变量也就消失了
3. SHELL脚本运行的几种方法以及区别
给脚本加上执行权限chmod u+x a.sh, 而后就可以直接用全路径来执行脚本了,比如当前文件夹下用./a.sh,如果如果脚本所在目录在PATH环境变量之中, 则直接用a.sh即可(这和运行我们自己编写的程序是一个道理)sh/bash ./a.sh 这种情况不需要脚本具有执行权限以上两种执行方式都是在子shell中执行的,也就是说当前shell需要启动另外一个shell,用来执行a.sh内的命令source ./a.sh . ./a.sh(注意前面的 . )以上两种执行方式是在当前shell下执行,并不需要建立子shellsource和 . 命令的作用:用来执行一个脚本 前两种方式和后两种方式的另外区别:如果你在一个脚本里export $KKK=111 ,如果你用./a.sh执行该脚本,执行完毕后,你运行 echo $KKK ,发现没有值,如果你用source来执行 ,然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是 source不同它就是在本shell中执行的,所以可以看到结果。
4. 怎么解释shell命令行与shell脚本运行结果不同
看看你的用户的默认shell是什么
就是/etc/password的最后一列
root:x:0:0:root:/root:/bin/bash
然后在shell脚本第一行就写上什么shell
#!/bin/bash
应该就好了 试试吧
还有要注意标点符号是中文的还是英文的 是全角还是半角
5. Shell脚本的概念区别
给脚本加上执行权限chmod
u+x
a.sh,
而后就可以直接用全路径来执行脚本了,比如当前文件夹下用./a.sh,如果如果脚本所在目录在path环境变量之中,
则直接用a.sh即可(这和运行我们自己编写的程序是一个道理)sh/bash
./a.sh
这种情况不需要脚本具有执行权限以上两种执行方式都是在子shell中执行的,也就是说当前shell需要启动另外一个shell,用来执行a.sh内的命令source
./a.sh
.
./a.sh(注意前面的
.
)以上两种执行方式是在当前shell下执行,并不需要建立子shellsource和
.
命令的作用:用来执行一个脚本
前两种方式和后两种方式的另外区别:如果你在一个脚本里export
$kkk=111
,如果你用./a.sh执行该脚本,执行完毕后,你运行
echo
$kkk
,发现没有值,如果你用source来执行
,然后再echo
,就会发现kkk=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是
source不同它就是在本shell中执行的,所以可以看到结果。