shell的输入输出
输入输出代码
1.输出
echo -e(解析转义)
echo:【
#!/bin/sh
echo "进行/$* 的查询"
for i in "$*" ;do
echo $i
done
echo "/$@"
for i in "$@";do
echo $i
done】
printf【
#!/bin/sh
for sk in tom del sam thy; do
printf "my name is ${sk}\n"
done】
区别:printf没有换行,需要加\n换行
1.输入
read
echo "please printf ipadddress"
read ipadd
echo "hello ipadd is ${ipadd}"
<<
3.算术
#!/bin/sh
a=10
b=20
var1=`expr 2 + 2 `
echo "加法:$var1"
varl=`expr $a + $b `
echo "加法:$varl"
varl=`expr $a - $b`
echo "减法:$varl"
varl=`expr $a \* $b`
echo "乘法: $varl"
varl=`expr $b / $a`
echo "除法:$varl"
var=`expr $b % $a`
echo "$var"
if [ $a == $b ]
then
echo "a等于b"
fi
if [ $a != $b ]
then
echo "a不等于b"
fi
4.比较
#!/bin/sh
a=10
b=20
if [ $a -eq $b ]
then
echo "a等于b"
else
echo "a不等于b"
fi
3.test
#!/bin/sh
a=10
b=20
if (test $a -ge $b)
then
echo "dengyu"
else
echo "bu"
fi
流程控制
if condition then command1 command2 ... commandN fi
if condition then command1 command2 ... commandN else command fi
if condition1 then command1 elif condition2 then command2 else commandN fi
a=10 b=20 if [ $a == $b ] then echo "a 等于 b" elif [ $a -gt $b ] then echo "a 大于 b" elif [ $a -lt $b ] then echo "a 小于 b" else echo "没有符合的条件" fi
num1=$[2*3] num2=$[1+5] if test $[num1] -eq $[num2] then echo '两个数字相等!' else echo '两个数字不相等!' fi
for var in item1 item2 ... itemN do command1 command2 ... commandN done
while condition do command done
#!/bin/bash int=1 while(( $int<=5 )) do echo $int let "int++" done
case的
echo '输入 1 到 4 之间的数字:' echo '你输入的数字为:' read aNum case $aNum in 1) echo '你选择了 1' ;; 2) echo '你选择了 2' ;; 3) echo '你选择了 3' ;; 4) echo '你选择了 4' ;; *) echo '你没有输入 1 到 4 之间的数字' ;; esac
break
#!/bin/bash while : do echo -n "输入 1 到 5 之间的数字:" read aNum case $aNum in 1|2|3|4|5) echo "你输入的数字为 $aNum!" ;; *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束" break ;; esac done
contiue
#!/bin/bash
while :
do
echo -n "输入 1 到 5 之间的数字: "
read aNum
case $aNum in
1|2|3|4|5) echo "你输入的数字为 $aNum!"
;;
*) echo "你输入的数字不是 1 到 5 之间的!"
continue
echo "游戏结束"
;;
esac
done