1.打印目前身份,当前所在目录
#!/bin/bash
echo -e "Your user name is $whoami"
echo -e "Your current directory is $pwd"
2.计算指定日期到今天相差几天
#!/bin/bash
#判断是否有传值,若无,提示输入
if [ $1 ]; then
p_date=$1
else
until [ $(expr length "$p_date") == 8 ]
do
read -p "请输入一个日期,格式为YYYYMMDD:" p_date
if [ $(expr length "$p_date") != 8 ]; then
echo "格式输入错误!"
fi
done
fi
p_date_s=`date --date="$p_date" +%s` #指定日期秒数,注意,+%s之间不能有空格
n_date_s=`date +%s` #现在的日期秒数
declare -i date_total_s=$(($p_date_s-$n_date_s))
declare -i date_total_d=$(($date_total_s/60/60/24))
echo "$p_date距离今天相差$date_total_d天"
3.奇数累加至输入值
#!/bin/bash
#判断是否有传值,若无,提示输入
if [ $1 ]; then
end_num=$1
else
until [ -n "$( echo $end_num | sed -n '/^[1-9][0-9]*$/p' )" ]
do
read -p "请输入一个数字:" end_num
#使用[[]]提供另一种思路,注意,该方式正则不要加引号
if [[ ! $end_num =~ ^[1-9][0-9]*$ ]]; then
echo "输入值非大于0的数字"
fi
done
fi
total=0
for (( num=1; num<=$end_num; num=num+2 )) #在条件语句中使用le替代<=
do
total=$(($total+$num))
done
echo "奇数累加值为:$total"
4.输出linux账号,格式为“ The 1 account is “root” ”
#!/bin/bash
cat /etc/passwd | awk 'BEGIN{FS=":"} {print "The " NR "account is \""$1 "\"" } '
打开App,阅读手记