shell 编程练习题目(一) ————最基本的shell编程操作
参考链接:
Github练习链接
菜鸟教程
文章目录
创建4个sh
for (( i = 1;i<=4;i++))
do
touch $i.sh
echo "#!/bin/bash" > $i.sh
chmod 764 $i.sh
done
exit 函数操作
#退出状态码,最大为255,超过则进行模运算
#testing the exit status
exit 最大的取值范围是255,如果超过的话,那么就需要进行取模运算操作
#!/bin/bash
var1=10
var2=20
var3=$[ $var1 + $var2]
echo The answer is $var3
exit 5
# 使用expr 函数进行数学计算操作
#!/bin/bash
#An example of using the expr command
var1=10
var2=20
var3=`expr $var2 / $var1`
echo "The result is $var3"
#!/bin/bash
var1=10
var2=50
var3=45
var4=$[$var1 * ($var2 - $var3)]
echo 'The final result is '$var4
使用内联表达式计算
#!/bin/bash
var1=10.45
var2=43.67
var3=33.2
var4=71
var5=`bc <<EOF
scale=4
a1 = $var1 * $var2
b1 = $var3 * $var4
a1 + b1
EOF
`
echo The final answer for this mess is $var5
反引号的操作
#!/bin/bash
#using the backtick character 会把反引号里面当作一条命令来执行
testing=`date`
echo "The date and time are:$testing"
在脚本中使用bc.sh
bc是Linux中默认的计算器,可以进行复杂的是小数、进制转换等问题操作
bc 表示的是计算器,而scale表示的是保留的精度信息(也就是小数位的操作信息),还可以利用ibase和obase实现其他进制的运算
$ echo 'scale=2; (2.777 - 1.4744)/1' | bc
$ echo "ibase=2;111" |bc
#!/bin/bash
abc=192
echo "obase=2;$abc" | bc
#!/bin/bash
var1=100
var2=45
var3=`echo "scale=4; $var1 / $var2" | bc`
echo The answer for this is $var3
#!/bin/bash
#This script displays the date and who's logged on
#如果想在同一行显示
#echo -n -e 'The time is:\n\n'
echo The time is:
date
echo The one who has been logged is:
who
#!/bin/bash
#display user information from system
echo "User info fro userId:$USER"
echo UID:$UID
echo HOME:$HOME
#换行
echo -e '\n'
echo 'The cost of the item is \$15'
通过反引号获得当前日期并生成唯一的文件名.sh
首先通过 date 获取当前时间信息,然后采用 %y%m%d的格式进行时间格式的输出
#!/bin/bash
#copy the /usr/bin directory listing to a log file
today=`date +%y%m%d`
ls /usr/bin -al > log.$today