Shell 语法

来自艺搜天下
跳到导航 跳到搜索

shell脚本必须以如下行开始(必须放在文件的第一行):

#!/bin/bash

变量

使用变量无需事先声明;

要取用一个变量的值,只需在变量名前面加一个$,最好用${var}

赋值:

a="hello world"  #等号两边均不能有空格存在

打印a的值:

echo "A is:" $a

需要注意shell的默认赋值是字符串赋值。比如:

var=1
var=$var+1
echo $var

打印出来的不是2而是1+1。为了达到想要的效果有以下几种表达方式:

let "var+=1"

((var++))

其中,let表示数学运算

if

 
if ....; then
  ....
elif ....; then
  ....
else
  ....
fi

通常用" [ ] "来表示条件测试,注意这里的空格很重要,要确保方括号内前后的空格

[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
[ -n "$var" ] :判断$var变量是否有值, 检测字符串长度是否为0,不为0返回 true。
-z 检测字符串长度是否为0,为0返回 true。
[ "$a" = "$b" ] :判断$a和$b是否相等
-e :检测文件(包括目录)是否存在,如果是则返回 true。
-w :检测文件是否可写
-eq:检测两个数是否相等,相等返回 true。

每次运行shift(不带参数时),销毁一个参数,后面的参数前移

执行man test可以查看表达式可以比较和判断的类型。下面是一个简单的if语句:

 
if [ ${SHELL} = "/bin/bash" ]; then
   echo "your login shell is the bash"
else
   echo "your login shell is not bash but ${SHELL}"
fi

变量$SHELL为登录shell的名称,我们拿它和/bin/bash进行比较以判断当前使用的shell是否为bash。