首页 > 系统相关 >Shell脚本实际应用

Shell脚本实际应用

时间:2023-04-09 17:22:06浏览次数:37  
标签:脚本 Shell 应用 parameters echo sh template root 输入

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

相关文章

  • [笔记]VisionMobile:应用商店货币化的黄金路
    VisionMobile的Theyellowbrickroadofappstoremonetisation,分析和对比三个应用商店:Apple,Google已经Amazon,并认为Amazon的应用商店比Google的好。以下是要点笔记。这三个商店应用货币化数据比较:不同来源的数据有较大的差异。根据Flurry对应用内购买数据,Apple的最高,亚马逊和G......
  • VisionMobile:为何有些出版商放弃应用而压注在web
    web和native的讨论一直存在,visionMobile最近有一篇blog:WhysomepublishersareabandoningappsandbettingontheWeb,篇幅小,翻译如下为何有些出版商放弃应用而压注在web[为何有些出版商放弃应用将赌注压在web?VisionMobile的自身分析师AndreasPappas对杂志出版商从原生iOS到基......
  • 搭建SSH环境 [Arch Linux] [Xshell] [VirtualBox]
    搭建SSH环境[ArchLinux][Xshell][VirtualBox]1.主机ping通虚拟机网卡1:虚拟机能ping通主机+虚拟机能连接外网网卡2:主机能ping通虚拟机2.获取虚拟机IP(注意是网卡2的IP,即与主机在同一网关的IP)ifconfig此处我的虚拟机IP为192.168.56.101与主机VirtualBox网卡在同一......
  • Linux shell command screen All In One
    LinuxshellcommandscreenAllInOnescreen#screen$screen--helpUse:screen[-opts][cmd[args]]or:screen-r[host.tty]Options:-aForceallcapabilitiesintoeachwindow'stermcap.-A-[r|R]Adaptallwindowstothenewdis......
  • 一文讲透 Redis 事务 (事务模式 VS Lua 脚本)
    准确的讲,Redis事务包含两种模式:事务模式和Lua脚本。先说结论:Redis的事务模式具备如下特点:保证隔离性;无法保证持久性;具备了一定的原子性,但不支持回滚;一致性的概念有分歧,假设在一致性的核心是约束的语意下,Redis的事务可以保证一致性。但Lua脚本更具备实用场景,它......
  • 如何在 SAP BTP 上创建 Module 之间具有依赖关系的 SAP MTA 应用
    @目录相关阅读写作背景实现思路步骤1:编写JavaRESTfulAPI步骤2:在SAPUI5中消费JavaRESTfulAPI步骤3:运行MTA应用程序步骤4:部署和运行MTA应用程序相关阅读SAPBTP平台CloudFoundry环境下编程概述如何在SAPBusinessApplicationStudio里创建SAPUI5应用并......
  • 如何保护群晖NAS中的AutoHotkey自动化热键脚本程序源代码 2023年4月8日
       如何保护群晖NAS中的AutoHotkey自动化热键脚本程序源代码2023年4月8日    通过RaiDrive_v1.5.3.1或者MountDuck或者WebDrive或者NetDrive2或者SynologyDriveClient异地远程连接群晖NAS的SFTP或者WebDAV文件服务并映射网络驱动器之后(公网IP地址、DDNS动态域......
  • 二分答案的实际应用与变式
    一.二分查找之于STLlower_bound()可以寻找第一个大于等于的upper_bound()可以寻找第一个大于的返回直应用auto承载,或在获取指针时-数组名/-vec.begin()distance(st.begin(),st.end())也可以获得其中元素个数和以上两个函数相作用,其用法不言而喻二.二分法求函数值使用前提:函......
  • Vulnhub之BoredHackerBlog: Social Network_Medium Socnet详细测试过程(拿到root shell
    BoredHackerBlog:SocialNetwork作者:jasonhuawen靶机信息名称:BoredHackerBlog:SocialNetwork地址:https://www.vulnhub.com/entry/boredhackerblog-social-network,454/识别目标主机IP地址Currentlyscanning:Finished!|ScreenView:UniqueHosts......
  • CentOS7-实现全网备份脚本
    一、应用场景备份公司的重要的文件或者日志文件,系统配置文件等二、脚本思路1、本地打包备份2、同步服务推送至备份服务器3、同步成功发送邮件提醒管理员4、编写计划任务5、本地备份文件保留时间,服务器备份文件保留时间三、项目实施1、服端配置rsync服务步骤一:安装rsync......