1,sh或者bash执行
· 写个脚本
[root@gong ~]# vim 02-shell.sh
#!/bin/bash
xinjizhiwa=$1
xjzw=$2
echo " 第一个参数:${xinjizhiwa} 传参成功了!~ "
echo " 第二个参数:${xjzw} 传参成功了!~ "
· 两种方式执行
[root@gong ~]# sh 02-shell.sh 111 222
第一个参数:111 传参成功了!~
第二个参数:222 传参成功了!~
[root@gong ~]# bash 02-shell.sh 111 222
第一个参数:111 传参成功了!~
第二个参数:222 传参成功了!~
· 脚本外使用变量
发现无法打印脚本中的变量;
[root@gong ~]# echo ${xinjizhiwa}
[root@gong ~]# echo ${xjzw}
2,【./】或者【.】或者【source】执行
· 【./】执行
./不是命令,它是指当前目录下的意思,需要先给这个脚本x的执行权限,才能用;
[root@gong ~]# chmod +x 02-shell.sh
[root@gong ~]# ./02-shell.sh 111 222
第一个参数:111 传参成功了!~
第二个参数:222 传参成功了!~
· 【.】和【source】
[root@gong ~]# source 02-shell.sh 111 222
第一个参数:111 传参成功了!~
第二个参数:222 传参成功了!~
[root@gong ~]# . 02-shell.sh 111 222
第一个参数:111 传参成功了!~
第二个参数:222 传参成功了!~
· 脚本外使用变量
[root@gong ~]# echo $xinjizhiwa
111
[root@gong ~]# echo $xjzw
222
3,总结
sh和bash的执行叫做子shell,子shell的脚本中的变量,是【局部变量】,无法在脚本外使用;
.和source的执行叫做父shell,父shell的脚本中的变量,是【全局变量】,可以在脚本外使用;