shell脚本入门(二)

本文主要介绍了Shell脚本的两个重要内容。一是Shell传递参数,可在执行脚本时传参,通过$n获取,还有$#、$*、$$等特殊字符处理参数;二是Shell数组,Bash Shell只支持一维数组,用括号表示,元素以空格分割,可通过特定方式读取元素、获取所有元素及数组长度。

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

shell传递参数

我们可以在执行shell的时候向脚本传递参数,shell脚本内获取参数的格式为:$n,0代表shell脚本文件名称 ,n代表第一个参数,以此类推.....

实例

以下我们写一个脚本,传三个参数,并分别输出:

#!/bin/bash
echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";

结果是:

[root@iZ2zecv7bqcpnita13c629Z /]# /bin/sh shell.sh 1 2 3
Shell 传递参数实例!
执行的文件名:shell.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3

另外,还有几个特殊字符用来处理参数:

$#          传递到脚本的参数个数

#!/bin/bash

echo "Shell 传递参数实例!";

echo "执行的文件名:$0";

echo "第一个参数为:$1";

echo "第二个参数为:$2";

echo "第三个参数为:$3";

echo "参数的个数为:$#";

[root@iZ2zecv7bqcpnita13c629Z /]# /bin/sh shell.sh 1 2 3
Shell 传递参数实例!
执行的文件名:shell.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3
参数的个数为:3

$*        以一个单字符串显示所有向脚本传递的参数。

#!/bin/bash

echo "Shell 传递参数实例!";

echo "执行的文件名:$0";

echo "第一个参数为:$1";

echo "第二个参数为:$2";

echo "第三个参数为:$3";

echo "获取所有参数:$*";

[root@iZ2zecv7bqcpnita13c629Z /]# /bin/sh shell.sh 1 2 3
Shell 传递参数实例!
执行的文件名:shell.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3
获取所有参数: 1 2 3

$$      获取当前脚本的进程id

#!/bin/bash

echo "当前进程ID:$$";

[root@iZ2zecv7bqcpnita13c629Z /]# /bin/sh shell.sh 
当前进程ID: 30018
 

shell数组

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。

数组元素的下标由0开始。

Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

array_name=(value1 ... valuen)

读取数组

读取数组元素值的一般格式是:

${数组名[下标]}      比如:${array_name[0]}

实例

#!/bin/base

array=(A B C D);

echo "第一个元素为:${array[0]}";
echo "第二个元素为:${array[1]}";
echo "第三个元素为:${array[2]}";
echo "第四个元素为:${array[3]}";

结果:

[root@iZ2zecv7bqcpnita13c629Z /]# /bin/sh shell.sh 
第一个元素为:A
第二个元素为:B
第三个元素为:C
第四个元素为:D
 

* 或 @      获取数组的所有元素

#!/bin/base

array=(A B C D);

echo "数组的所有元素为:${array[*]}";

echo "数组的所有元素为:${array[@]}";

结果:

[root@iZ2zecv7bqcpnita13c629Z /]# /bin/sh shell.sh 
数组的所有元素为:A B C D

数组的所有元素为:A B C D

获取数组的长度

#!/bin/base

array=(A B C D);

echo "数组的个数为:${#array[*]}";

echo "数组的个数为:${#array[@]}";

结果:

[root@iZ2zecv7bqcpnita13c629Z /]# /bin/sh shell.sh 
数组的个数为:4

数组的个数为:4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值