Linux提供了具有强大成果的各类成果强大的Shell,包罗Bash,Zsh,Tcsh和Ksh。这些Shell措施最令人诧异的成果之一就是它们的可编程性。建设简朴而有效的Linux Shell脚原来处理惩罚日常事情很是容易。另外,对这一主题的一点相识将使您当即成为Linux的高级用户。请和我们一起对Unix Shell剧本举办具体先容。
10、利用AND运算符
AND运算符答允我们的措施一次查抄是否满意多个条件。用AND运算符脱离的所有部门都必需为true。不然,包括AND的语句将返回false。查察以下bash剧本示例,以更好地相识AND的事情道理。
#!/bin/bash
echo -n "输入数字:"
read num
if [[ ( $num -lt 10 ) && ( $num%2 -eq 0 ) ]]; then
echo "您适才输入的是偶数:$num"
else
echo "您适才输入的是奇数:$num"
fi
11、利用“OR”运算符
OR运算符是另一个至关重要的布局,它使我们可以或许在剧本中实现巨大而强大的编程逻辑。与AND相反,由OR运算符构成的语句在其任何一个操纵数为true时均返回true。仅当由OR脱离的每个操纵数为false时,它才返回false。
#!/bin/bash
echo -n "输入任何数字:"
read n
if [[ ( $n -eq 25 || $n -eq 50 ) ]]
then
echo "你赢了"
else
echo "你输了"
fi
这个简朴的示例演示了OR运算符如安在Linux Shell剧本中事情。仅当用户输入数字25或50时,它才公布用户为赢家。标记代表“or”运算符。
12、利用Elif
elif语句代表else if,并为实现链逻辑提供了一种利便的要领。通过评估以下示例,相识elif的事情道理。
#!/bin/bash
echo -n "输入一个数字: "
read num
if [[ $num -gt 20 ]]
then
echo "数字大于20."
elif [[ $num -eq 20 ]]
then
echo "数字便是20."
else
echo "数字小于20."
fi
上面的措施是不言自明的,因此我们不再逐行举办分解。你变动剧本的某些部门(譬喻变量名和值)以查抄它们如何一起事情。
13、多分支选择布局
多分支选择布局是Linux bash剧本提供的另一个强大特性。它可以在需要嵌套条件的处所利用,可是您不但愿利用巨大的if-else-elif链。那请看下一个例子。
#!/bin/bash
echo -n "请输入数字: "
read num
case $num in
100)
echo "100!!" ;;
200)
echo "200!!" ;;
*)
echo "既不是100也不是200" ;;
esac
条件写在case和esac要害字之间。 *)用于匹配除100和200以外的所有输入。
14. 呼吁行参数
在很多环境下,直接从呼吁shell获取参数大概是有益的。下面的示例演示如安在bash中执行此操纵。
#!/bin/bash
echo "参数总数 : $#"
echo "第1个参数 = $1"
echo "第2个参数 = $2"
在其名称之后,利用两个附加参数运行此剧本。我将其定名为linuxidc.com.sh,而且挪用进程概述如下。
[linuxidc@linux:~/www.linuxidc.com]$ ./linuxidc.com.sh linuxidc.com linuxidc Ubuntu
因此,$1用于会见第一个参数,$2用于会见第二个参数,依此类推。$#用于获取参数的总数。
15、获取带有名称的参数
下面的示例演示如何获取带有名称的呼吁行参数。
#!/bin/bash
for arg in "$@"
do
index=$(echo $arg | cut -f1 -d=)
val=$(echo $arg | cut -f2 -d=)
case $index in
A) a=$val;;
B) b=$val;;
*)
esac
done
((result=a+b))
echo "A+B=$result"
将此剧本定名为linuxidc.com.sh并按如下所示举办挪用。
[linuxidc@linux:~/www.linuxidc.com]$ ./linuxidc.com.sh A=200 B=70
它应该返回A+B=270。此处的参数存储在' $@ '内,剧本利用Linux cut呼吁获取它们。
16、毗连字符串