Skip to the content.

王孝东的个人空间

Shell 脚本常用语法

# 数字加减用双括号
INDEX=1
INDEX=$((INDEX+1))

#数组
ARR=(”A“ "B") # 定义数组
ARR+="C"  #追加
ARR[3]="D" #赋值
echo "${ARR[@]}" #所有元素
echo "${ARR[*]}" #所有元素
echo "${#ARR[@]}" #素组长度
echo "${ARR[0]}}"   #下标从0开始
#遍历
for ELEMENT in ${ARR[@]}
do
    echo "${ELEMENT}"
done

#字符串处理
# 字符串连接,直接写,不需要任何符号
A1="a1"
A2="${A1}b1"    #a1b1
echo "abcd" | grep "bc” #匹配
echo $?     #能匹配到,输出0,否则输出1; 这个$?一定要紧跟上一条语句,写脚本时经常会出现这个失误
echo "abcd" | grep "ef"
echo $? # 输出1
echo "abc def gh" | cut -f1 -d\ #字符串split,根据空格拆分,详见cut用法
echo "abcd" | sed ’s/a/A/g‘ #字符串替换
echo "${#A1}"   #字符串长度

# 判断字符串是否为空
#!/bin/sh

STRING=
if [ -z "$STRING" ]; then
    echo "STRING is empty"
fi

if [ -n "$STRING" ]; then
    echo "STRING is not empty"
fi

# 文件,目录判断
if [ -f /tmp/aa.txt ]; then
    echo "aa.txt exists and is file"
fi

if [ ! -f /tmp/aa.txt ]; then
    echo "file does not exist"
    touch "/tmp/aa.txt"
fi

if [ -d /tmp/aa ]; then
    echo "aa exists and is dir"
fi