shell输入输出

1.接收输入

脚本功能:接受用户输入生日年份,计算对应年龄。例如执行./age.sh -b 1999 可得到1999年生日的人当前年龄。

#!/usr/bin/bash
birth=0

if [ "x$1" = "x-b" ]
then
birth=$2
else
echo "please input your birth:"
read birth
fi

now=`date "+%Y"`
age=`expr $now - $birth`
echo $age

涉及知识点:

  • read: 读取用户的输入,存放到变量中。
  • `(反引号)符号: 用于在shell脚本中执行shell命令并将命令输出返回。
  • date: 根据格式,返回当前日期,上面代码中 “+%Y” 只输出当前日期年份。
  • expr: 手工命令行计数器,上述代码中用于计算当前年份与用户输入生日年份差,该命令也可用于字符串处理expr命令
  • [(中括号)符号: 该符号实际为shell中关键字,与test关键字功能相同,用于判断表达式布尔值。

2.参数、返回值、打印

脚本功能:测试变量的打印,参数,和命令返回值获取。

arg1=hello
echo ${arg1}test

echo the zero arg $0
echo the first arg $1

arg2=10
printf "hello %d times\n" $arg2
echo $?

arg3=abc
printf "hello %d times\n" $arg3
echo $?

涉及知识点:

  • ${变量名}:该方式取值是为了防止代码出错,若不用该方式取值,则上述代码 echo $arg1test 会将arg1test识别为一个变量,与预期不符。
  • printf:使用该关键字时,若需回车,要加\n。格式化字符串中,预期格式与实际参数不符时会报错,上述代码中arg3为字符串,与printf的格式化字符串中的%d不符,执行该脚本时在该处会报错。
  • $?: 取上一个指令的返回值。通常0为成功,非0表示失败。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bob_cap

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值