Shell 基础知识梳理三
Shell 流程控制if else if condition
then
command1
command2
...
commandN
fi
if else-if else if condition
then
command1
command2
...
commandN
else
command
fi
for 循环for循环一般格式为: for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
while 语句while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式为: #!/bin/bash
i=1
while(( $i<=5 )) #要两个括弧,不然报错
do
echo $i
let "i++" #和其他语言的区别处
done
caseShell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下: #!/bin/bash
echo "请输入1-5之间的数字"
echo -e "num=c"
read num
case $num in
1)
echo '输入的是数字是1'
;;
2)
echo '输入的是数字是2'
;;
3)
echo '输入的是数字是3'
;;
4)
echo '输入的是数字是4'
;;
5)
echo '输入的是数字是5'
;;
*)
echo "输入的是数字是1-5之外的"
;;
esac
跳出循环在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用两个命令来实现该功能:break和continue。 #!/bin/bash
while :
do
echo "请输入1-3之间的数字"
echo -e "num=c"
read num
case $num in
1)
# 1|2|3|) echo "你输入的数字为 $num!"
echo '输入的是数字是1'
;;
2)
echo '输入的是数字是2'
;;
3)
echo '输入的是数字是3'
;;
*)
echo "输入的是数字是1-3之外的"
break
;;
esac
done
continue #!/bin/bash
while :
do
echo "请输入1-3之间的数字"
echo -e "num=c"
read num
case $num in
1)
# 1|2|3|) echo "你输入的数字为 $num!"
echo '输入的是数字是1'
;;
2)
echo '输入的是数字是2'
;;
3)
echo '输入的是数字是3'
;;
*)
echo "输入的是数字是1-3之外的"
continue
;;
esac
done
当输入的数字是1-3之外的数字,也不会终止程序,一直循环执行。 #!/bin/bash
fun(){
echo "hello world"
}
fun
带有return语句的函数 #!/bin/bash
add(){
echo "该函数表示一个加法"
echo -e "请输入第一个数num1=c"
read num1
echo -e "请输入第一个数num2=c"
read num2
num=$num1+$num2
return $((num))
}
add
echo "两个数之和为$?"
代表上一个命令执行是否成功的标志,如果执行成功则$? 为0,否则不为0,如果是有返回数值的则应该为真实的数值。 函数参数 funWithParam(){
echo "第一个参数为 $1 !"
echo "第二个参数为 $2 !"
echo "第十个参数为 $10 !"
echo "第十个参数为 ${10} !"
echo "第十一个参数为 ${11} !"
echo "参数总数有 $# 个!"
echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73
#输出结果:
第一个参数为 1 !
第二个参数为 2 !
第十个参数为 10 !
第十个参数为 34 !
第十一个参数为 73 !
参数总数有 11 个!
作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !
注意,
Shell 输入/输出重定向
输出重定向 Here DocumentHere Document 是 Shell 中的一种特殊的重定向方式,用来将输入重定向到一个交互式 Shell 脚本或程序。 $ wc -l << EOF
hello
world
wyl
EOF
3 # 输出结果为 3 行
$
/dev/null 文件如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null: $ command > /dev/null
/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到”禁止输出”的效果。 $ command > /dev/null 2>&1
注意:0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |