shell数组

本文介绍了Shell脚本的基础操作,包括数组定义与修改、文件读取、随机数生成及应用,以及通过Shell脚本实现九九乘法表和闰年判断的详细步骤。文章深入浅出地讲解了如何使用for循环进行数组处理,如何利用内置命令进行随机数生成,以及如何编写交互式脚本来判断闰年。
定义:
a=(haha nihao hello)
a[0]=hi
a=(hi nihao hello)


b=()
j=0
for i in `cat /root/name.txt`
do
	b[$j]=$i
	let j++
done


2.随机
	b= `cat /root/name.txt | wc -l`
		//统计多少行
	RANDOM%$b   0-69
	${a[]}


1.用shell打印九九乘法表
	for循环
	echo
		-n  不换行
		echo“”

	for i in  `seq 9`  //定义外循环(决定行数)
	do
	    for j in `seq $i`  //定义内循环(决定列数)
	    do	
	 	echo  -n “$j * $i = $[i*j]”
	    done
		echo“”








2.shell输出20斐波那契出列
3.shell写出一个判断闰年交互式的脚本,可以判断三次

#!/bin/bash

for (( i=1;i<=9;i++ ))
do
for (( j=1;j<=9;j++ ))
do
	[ $j -le $i ] && echo -n "${i}*${j}=$((i*j)) " #判断j是否小于i,当j大于i时不输出,输出不换行,末尾加一个制表符
done
	echo "" #输出一个换行符 
done  




#!/bin/bash
#闰年判断
while true
do
read -p '请输入一个年份:' year
let a=year%4
let b=year%100
let c=year%400
if [ "$a" -eq "0" ] && [ "$b" -ne "0" ];then
	echo "$year 是闰年"
elif [ "$c" -eq "0" ];then
	echo "$year 是闰年"
else
	echo "$year 是平年"
fi

done
### 定义和操作 Shell 中的数组 #### 1. 定义数组Shell 脚本中,可以通过以下方式定义数组数组无需指定大小,可以直接赋值给变量[^1]。 ```bash var=(value1 value2 value3 ...) ``` 例如: ```bash numbers=(1 2 3 4 5) letters=('a' 'b' 'c') mixed=("string" 123 true) ``` #### 2. 访问数组元素 通过 `${array_name[index]}` 的形式访问数组中的单个元素。注意,索引从 `0` 开始。 示例: ```bash echo ${numbers[0]} # 输出:1 echo ${letters[2]} # 输出:c ``` 如果未加方括号,则默认返回数组的第一个元素[^3]。 ```bash echo ${numbers} # 输出:1 ``` #### 3. 遍历整个数组 使用 `${array_name[@]}` 或 `${array_name[*]}` 来获取数组的所有元素。两者的区别在于是否保留空格作为分隔符[^2]。 - 使用双引号 `"${array_name[@]}"` 时,每个元素会被视为独立的部分。 - 不带双引号的情况下,`${array_name[@]}` 和 `${array_name[*]}` 行为一致。 示例: ```bash for num in "${numbers[@]}"; do echo $num done ``` #### 4. 获取数组长度 可以使用 `${#array_name[@]}` 或 `${#array_name[*]}` 来获取数组的长度[^4]。 示例: ```bash len=${#numbers[@]} echo "Array length is: $len" ``` #### 5. 获取数组下标 利用 `${!array_name[@]}` 或 `${!array_name[*]}` 可以获得数组的有效索引列表。 示例: ```bash indices=(${!letters[@]}) echo "Indices are: ${indices[@]}" ``` #### 6. 数组切片 Shell 支持对数组进行切片操作,语法如下: ```bash ${array_name[@]:start:length} ``` 其中 `start` 是起始位置,`length` 是截取的数量。如果不提供 `length` 参数,默认提取到末尾。 示例: ```bash slice=("${numbers[@]:1:3}") echo "Sliced array: ${slice[@]}" ``` --- ### 总结 以上介绍了如何在 Shell 脚本中定义、访问以及操作数组的方法。这些功能可以帮助减少代码冗余并提高可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值