连载shell(一): 交互式脚本,随日期变化,数值运算

6 篇文章 0 订阅

1.交互式脚本:变量内容由用户决定

需求:
用户输入first name 与last name ,最后在屏幕显示“Your full name is: ”的内容。

debian@debian-pc:~/scripts$ vim sh02.sh

  #!/bin/bash
  read -p "Please input your first name: " firstname #提示用户输入
  read -p "Please input your last name: " lastname #提示用户输入
  echo -e "\nYour full name is: $firstname $lastname" #结果由屏幕输出
debian@debian-pc:~/scripts$ sudo chmod a+x sh02.sh 
debian@debian-pc:~/scripts$ ./sh02.sh
Please input your first name: mumu
Please input your last name: xizi

Your full name is: mumu xizi

2.随日期变化:利用日期进行文件的创建

需求:
假设我需要创建三个空文件(通过touch),文件最开头由用户输入决定,假设用户输入filename好了,且今天日期为20160529,我想要以前天、昨天、今天的日期来创建这些文件,即filename_20160527, filename_20160528,filename_20160529。

  1 #!/bin/bash
  2 # Program:
  3 #       Program creates three files, which named by user's input and date command.

  8 
  9 #1.让用户输入文件名,并取得fileuser这个变量:
 10 echo -e "I will use 'touch' command to creates 3 files." #纯粹显示信息
 11 read -p "Please input your filename: " fileuser  #提示用户输入
 12 
 13 #2.为了避免用户随意按【Enter】,利用变量功能分析文件名是否有设置:
 14 filename=${fileuser:-"filename"}  #开始判断有否配置文件名
 15 
 16 #3.开始利用date命令取得所需的文件名了
 17 date1=$(date --date='2 days ago' +%Y%m%d)  #前两天的日期
 18 date2=$(date --date='1 days ago' +%Y%m%d)  #前一天的日期
 19 date3=$(date +%Y%m%d)                      #今天的日期
 20 file1=${filename}${date1}
 21 file2=${filename}${date2}
 22 file3=${filename}${date3}
 23 
 24 #4.创建文件名:
 25 touch "$file1"
 26 touch "$file2"
 27 touch "$file3"
debian@debian-pc:~/scripts$ sudo chmod a+x sh03.sh 
[sudo] debian 的密码:
**************************************************
debian@debian-pc:~/scripts$ ./sh03.sh 
I will use 'touch' command to creates 3 files.
Please input your filename: 
#不输入任何字符,结果如下:
debian@debian-pc:~/scripts$ ls
filename20160527  filename20160528  filename20160529   sh03.sh
**************************************************
debian@debian-pc:~/scripts$ ./sh03.sh 
I will use 'touch' command to creates 3 files.
Please input your filename: cherry
#输入cherry,结果如下:
debian@debian-pc:~/scripts$ ls
cherry20160527  cherry20160529    cherry20160528  sh03.sh 
filename20160528  filename20160527  filename20160529 

3.数值运算:简单的加减乘除

需求:
用户输入两个变量,然后将两个变量相乘输出。
注:变量只能定义为整数时,才能进行运算。有两种方式:其一,声明declare,“declare -i total=$firstnu*$secnu”;其二,利用“$((计算式))”进行数值运算,如下。

  1 #!/bin/bash
  2 # Program
  3         User input 2 integer numbers; program will cross these two numbers.

  8 
  9 echo -e "You SHOULD input 2 numbers, I will cross them! \n"
 10 read -p "first number: " firstnu
 11 read -p "second number: " secnu
 12 total=$(($firstnu*secnu))
 13 echo -e "\nThe result of $firstnu x $secnu is ==> $total"
debian@debian-pc:~/scripts$ sudo chmod a+x sh04.sh 
debian@debian-pc:~/scripts$ ./sh04.sh 
You SHOULD input 2 numbers, I will cross them! 

first number: 5
second number: 6

The result of 5 x 6 is ==> 30
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值