Linux的Shell编程基本语法

编写shell脚本的时候,最开始的第一行要加上:      #!/bin/bash

这句话是告诉系统用bash这个解析器

一、shell变量

shell变量和一些编程语言不同,一般shell的变量赋值的时候不用带“$”,而使用或者输出的时候要带“$”。加减乘除的时候要加两层小括号。括号外面要有一个“$”,括号里面的变量可以不用“$”。需要注意的是,变量赋值,变量使用的时候不能有空格,否则会被解析成命令,报错无此命令。

例子:

#!/bin/bash

a=10
b=20
c="this is a test"
d=$((a+b))
e=$((a-b))
f=$((a*b))
g=$((a/b))
h=$((a%b))
i=$((a**3))

echo $c
echo "a = "$a          #输出a的值
echo "b = "$b          #输出b的值
echo "a+b = "${d}      #输出a+b的值
echo "a-b = "${e}      #输出a-b的值
echo "a*b = "${f}      #输出a*b的值
echo "a/b = "${g}      #输出a/b的值
echo "a%b = "${h}      #输出a%b的值
echo "a^3 = "${i}     #输出a的3次方的值

echo "a+b = "$((a+b))  #输出a+b的值
echo "a-b = "$((a-b))  #输出a-b的值
echo "a*b = "$((a*b))  #输出a*b的值
echo "a/b = "$((a/b))  #输出a/b的值
echo "a%b = "$((a%b))  #输出a%b的值
echo "a^3 = "$((a**3)) #输出a的3次方的值

echo $((a+b*a-b/a+a%b+a**2)) #表达式可以很长

二、字符串操作:

${#string} : 计算长度

${string:position} : 从position开始截取

${string:position:length} : 从position开始截取length长度

${string#substring} : 删除开始的字符串

三、语句判断

(1)test命令

-f:文件是否存在

-d:目录是否存在

-r:文件是否有读权限

-w:文件是否有写权限

-x:文件是否有执行权限

例子:

#!/bin/bash
filename=/home/zhangsan
test -f $filename && echo 'exist' || 'not exist'

(2)条件分支

三种条件分支:单分支、双分支和多分支

语法:

单分支

if[];then
echo 'aa'
fi

双分支

#!/bin/bash
if[];then
  echo 'aa'
else
  echo 'bb'
fi

多分支

#!/bin/bash
if[];then
  echo 'aa'
elif
  echo 'bb'
elif
  echo 'cc'
fi

case in方式

#!/bin/bash
echo '输入一个值:'
read number
case $number in
1)
  echo '1';;
2)
  echo '2';;
*)
  echo '错误';;
esac

四、循环语句

(1)while do 循环

#!/bin/bash
i=10
while [ $i -eq 5 ];do 
  echo $i;
  ((i--));
done;

(2)until do 循环

#!/bin/bash
i=10
until (($a<0));do
  echo $i;
  ((i--));
done;

(3)for循环

#!/bin/bash
for((i=1;i<=10;i++));do
  echo $i
done;

五、函数的定义

function function_name()

{ statement1

   statement2

   ....

   statementn

}

函数的调用

function_name parm1 parm2

猜你喜欢

转载自blog.csdn.net/cd19901016/article/details/81170972