通俗理解,shell就是一个命令行解释器,shell脚本就是由shell命令组成的文件,脚本不用编译就可以执行。
#!/bin/bash --在脚本文件中指定脚本解释器
wc -l 文件名 # 统计文件中换行符的个数(可以统计文件行数)
要求:编写一个脚本,显示下面菜单:
- Display list of all users currently logged in
- Get help on a particular command
Press <Ctrl+D> to exit
如果选择1,显示当前登录的用户信息;若选择2,要求从键盘上输入一个命令名,并显示该命令的帮助信息;如果没有数据输入,脚本要先显示错误并退出。
#!/bin/bash
echo "1. Display list of all users currently logged in."
echo "2. Get help on a particular command"
echo "Press <Ctrl+D> to exit"
read ch # read默认接受键盘的输入
case $ch in
1) who;;
2) echo "Enter a command name:"
read comm
if test -z "${comm}" #test命令用于检查某个条件是否成立,-z字符串表示字符串的长度为零则为真
then exit
else
man $comm
fi
echo "Invalid choice"
exit
esac
编写一个脚本,它能够显示:
序列前10个数字:0、1、1、2、3、5、8、13、…。
#!/bin/bash
num1=0
num2=1
count=3
echo $num1
echo $num2
while test $count -le 10
do
num1=$((${num1}+${num2}))
echo $num1
count=$((${count} + 1))
temp=$num1
num1=$num2
num2=$temp
done
写个shell脚本来把字符串反过来显示
#!/bin/bash
echo "enter a string"
read str
echo $str|rev
编写一个shell脚本,打印任何数的乘法表。
#!/bin/bash
echo "enter a number"
read num
k=1
while test $k -le 10
do
sum=$(($num*$k))
echo "$num * $k = $sum"
k=$(($k+1))
done
利用while循环完成输出循环10次内容
#!/bin/bash
loop=0
while test $loop -ne 10
do
loop=$(($loop+1))
echo "current value of loop is: $loop"
done
循环:
第一种:for
#!/bin/bash
j=0
for i in `seq 1 15` #循环体
do
j=$(($i+$j))
done
echo $j