Shell脚本实际应用

发布时间 2023-04-09 17:18:10作者: ChAnAn

1.你需要打印一个给定的数字的反序,如输入10572,输出27501,如果没有输入数据,应该抛出错误和使用脚本说明。

代码实例:

[root@template ~]# cat l1.sh
# 你需要打印一个给定的数字的反序,如输入10572,输出27501,如果没有输入数据,应该抛出错误和使用脚本说明
#!/bin/bash
read -p "请输入一个数:" num
if [[ "$num" =~ ^[0-9]+$ ]]
then
        echo $num | rev
elif [[ "$num" =~ ^[a-zA-Z]+$ ]]
then
        echo "${num}是纯字母"
else
        echo "格式错误!!!"
fi

测试:

[root@template ~]# sh l1.sh
请输入一个数:456
654
[root@template ~]# sh l1.sh
请输入一个数:4s
格式错误!!!
[root@template ~]# sh l1.sh
请输入一个数:ca
ca是纯字母

2.写出SHELL函数RevertInput,函数必须获取三个参数,然后将三个参数倒序echo打印出来,函数必须检查参数个数的合法性,如果参数非法,打印”Illegal parameters”,对于下面的输入: RevertInput “this is para1” para2 para3 应该输出: para3 para2 this is para1 (注:需要注意第一个参数中的空格)

最先做的没考虑到空格:

[root@template ~]# cat l3.sh
#!/bin/bash
RevertInput(){
read -a array
lg=${#array[*]}
if [ $lg -ne 3 ]
then
 echo illegal parameters
else
 for (( i=0;i<lg/2;i++)){
     temp=${array[$i]}
     array[$i]=${array[$lg-$i-1]}
     array[$lg-$i-1]=$temp
 }
 echo  ${array[*]}
fi
}
RevertInput

测试

[root@template ~]# sh l3.sh

illegal parameters
[root@template ~]# sh l3.sh
1 w 4
4 w 1
[root@template ~]# sh l3.sh
12 43 sds
sds 43 12
[root@template ~]# sh l3.sh
“q dd" a e
illegal parameters

改进后的实例

[root@template ~]# cat l2.sh
#!/bin/bash
RevertInput(){
if [ $# -ne 3 ]
then
 echo illegal parameters
else
 echo " $3"
 echo " $2"
 echo " $1"
fi
}
RevertInput "$@"
[root@template ~]# sh l2.sh "this is one" NO2 NO3
 NO3
 NO2
 this is one