02-shell脚本的执行方式

本文介绍了如何在Bash和Sh中执行脚本,区分了./和.(source)的区别,指出前者导致局部变量,后者实现全局变量。同时提到chmod用于赋予脚本执行权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的脚本中的变量,是【全局变量】,可以在脚本外使用;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心机の之蛙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值