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
标签:脚本,Shell,应用,parameters,echo,sh,template,root,输入
From: https://www.cnblogs.com/sre-chan/p/17300535.html