Linux-shell 变量参数

本文深入探讨了 Bash Shell 脚本中变量的声明、使用及作用域,函数的定义与调用,以及如何通过脚本处理命令行参数。展示了如何在子进程中修改并保持变量状态,以及不同变量类型对脚本执行的影响。

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

[root@centos7-1 ~]# vickie=100
[root@centos7-1 ~]# vickie03(){}
-bash: 未预期的符号 `{}' 附近有语法错误
[root@centos7-1 ~]# vickie03(){
> echo $vickie
> vickie=222
> }
[root@centos7-1 ~]# vickie
bash: vickie: 未找到命令...
[root@centos7-1 ~]# vickie03
100
[root@centos7-1 ~]# echo $vickie
222
[root@centos7-1 ~]# vickie04(){
> local vickie=333
> }
[root@centos7-1 ~]# echo vickie04
vickie04
[root@centos7-1 ~]# vickie04(){
> local vickie1=333
> }
[root@centos7-1 ~]# vickie04
[root@centos7-1 ~]# echo $vickie1
 

[root@centos7-1 ~]# vi sh01.sh
[root@centos7-1 ~]# . sh01.sh 1 2 3 4 5 6 7 8 9 0 a b c
13
1 2 3 4 5 6 7 8 9 0 a b c
1 2 3 4 5 6 7 8 9 0 a b c
1
2
11
[root@centos7-1 ~]# cat sh01.sh
echo $#
echo $*
echo $@

echo $1
echo $2
echo $11

[root@centos7-1 ~]# vi sh01.sh
[root@centos7-1 ~]# . sh01.sh 1 2 3 4 5 6 7 8 9 0 a b c
13
1 2 3 4 5 6 7 8 9 0 a b c
1 2 3 4 5 6 7 8 9 0 a b c
1
2
a

[root@centos7-1 ~]# vickie=vickie
[root@centos7-1 ~]# echo $vickie
vickie
[root@centos7-1 ~]# echo $vickiegood

[root@centos7-1 ~]# echo ${vickie}good
vickiegood

[root@centos7-1 ~]# ls -l /
总用量 28
lrwxrwxrwx.   1 root root           7 9月  27 02:39 bin -> usr/bin
dr-xr-xr-x.   5 root root        4096 11月 14 15:58 boot
drwxr-xr-x   20 root root        3320 11月 28 20:24 dev
drwxr-xr-x. 144 root root        8192 12月  3 08:20 etc
drwxr-xr-x.   6 root root          63 11月 27 18:27 home
lrwxrwxrwx.   1 root root           7 9月  27 02:39 lib -> usr/lib
lrwxrwxrwx.   1 root root           9 9月  27 02:39 lib64 -> usr/lib64
drwxr-xr-x.   2 root root           6 4月  11 2018 media
drwxr-xr-x.   2 root root           6 4月  11 2018 mnt
drwxr-xr-x.   4 root root          30 11月 28 18:45 opt
dr-xr-xr-x  213 root root           0 11月 27 11:43 proc
dr-xr-x---.   7 root root        4096 12月  3 09:23 root
drwxr-xr-x   41 root root        1240 12月  3 08:21 run
lrwxrwxrwx.   1 root root           8 9月  27 02:39 sbin -> usr/sbin
drwxr-xr-x.   2 root root           6 4月  11 2018 srv
dr-xr-xr-x   13 root root           0 11月 27 18:57 sys
drwxrwxrwt.  18 root root        4096 12月  3 08:21 tmp
drwxr-xr-x.  14 root root         167 11月 28 19:35 usr
drwxr-xr-x.  22 root root        4096 11月 28 22:19 var
drwx------    2 root sharevickie   24 11月 27 19:22 vickieshare
drwxr-xr-x    3 root root          15 11月 16 12:09 vik
[root@centos7-1 ~]# echo $?
0
[root@centos7-1 ~]# ls -l /god
ls: 无法访问/god: 没有那个文件或目录
[root@centos7-1 ~]# echo $?
2
[root@centos7-1 ~]# echo $$
16940
[root@centos7-1 ~]# ls -l /etc | grep init
-rw-r--r--.  1 root root      265 10月 30 2018 gdbinit
drwxr-xr-x.  2 root root        6 10月 30 2018 gdbinit.d
lrwxrwxrwx.  1 root root       11 9月  27 02:39 init.d -> rc.d/init.d
-rw-r--r--.  1 root root      511 10月 31 2018 inittab
[root@centos7-1 ~]# vickie=100
[root@centos7-1 ~]# echo $vickie
100
[root@centos7-1 ~]# vickie=200 | echo ok
ok
[root@centos7-1 ~]# echo $vickie
100
[root@centos7-1 ~]# echo $$
16940
[root@centos7-1 ~]# echo $$ | cat
16940
[root@centos7-1 ~]# echo $bashpid

[root@centos7-1 ~]# echo $BASSHPID

[root@centos7-1 ~]# echo $BASHPID
16940
[root@centos7-1 ~]# echo $BASHPID | cat
3141

[root@centos7-1 ~]# vi sh02.sh
[root@centos7-1 ~]# cat sh02.sh
echo "hello"
echo $vickie
[root@centos7-1 ~]# source sh02.sh
hello
100
[root@centos7-1 ~]# bash sh02.sh
hello

[root@centos7-1 ~]# export vickie
[root@centos7-1 ~]# bash sh02.sh
hello
100
[root@centos7-1 ~]# vi sh03.sh
[root@centos7-1 ~]# cat sh03.sh
echo "-----------"
echo $vickie
vickie=22222
echo "------------------"
echo $vickie
sleep 20
echo $vickie
[root@centos7-1 ~]# echo $vickie
100
[root@centos7-1 ~]# bash sh03.sh &
[1] 19228
[root@centos7-1 ~]# -----------
100
------------------
22222
22222
^C
[1]+  完成                  bash sh03.sh
[root@centos7-1 ~]# echo $vickie
100
[root@centos7-1 ~]# bash sh03.sh &
[1] 20186
[root@centos7-1 ~]# -----------
100
------------------
22222

[root@centos7-1 ~]# echo $vickie
100
[root@centos7-1 ~]# 22222
[1]+  完成                  bash sh03.sh

[root@centos7-1 ~]# echo $vickie
100
[root@centos7-1 ~]# bash sh03.sh &
[1] 22081
[root@centos7-1 ~]# -----------
100
------------------
22222

[root@centos7-1 ~]# echo $vickie
100
[root@centos7-1 ~]# vickie=33322222

[1]+  完成                  bash sh03.sh
[root@centos7-1 ~]# echo $vickie
333


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值