shell脚本编程基础

1.脚本解释器的选择,根据编程需要或个人习惯,选择合适的解释器,常见的是/bin/sh/bin/bash
2.每个shell脚本文件必须在开头指明脚本解释器,如:
#! /bin/bash
...
3.变量
  • 变量申明
#! /bin/bash

name="Denzel"

注意:等号前后没有空格
除了显示赋值还可以用语句赋值

for file in `ls /etc` 
  • 变量使用
    在变量名前加$就可以使用变量
name="Denzel"
echo $name
echo ${name}

花括号是为了帮助解释器识别变量的边界

for skill in Ada Coffe Action Java; do
    echo "I am good at ${skill}Script"
done
4.注释,单行用“#"注释,没有多行注释
5.字符串
  • 单引号
    str='this is a string'

    • 单引号里不能使用变量,字符原样输出
    • 单引号里不能出现单引号(转移也不可以)
  • 双引号

name="Denzel"
greeting="Hello, the super star, \"$name\"! "
  • 拼接字符串
name="Denzel"
greeting="hello, "$name" !"
greeting1="hello, ${name} !"

echo $greeting $greeting_1
  • 获取字符串长度
name="Denzel"
echo ${#name} #输出6
  • 获取子字符串
string="The man, Denzel, is a super film star."
echo ${string:4:3} #输出man
6. 数组
7.管道
8.分支
  • condition
[ -lt ]  #小于  [ $UID -lt 0 ]判断UID是否小于0
[ -le ] #小于等于  [ $? -le 0 ]判断上一步执行的返回码是否小于等于0
[ -gt ] #大于
[ -ge ] #大于等于
[ -ne ] #不等于
  • if else-if else
if condition
then
  cmd1
  cmd2
elif condition2
  cmd3
else
  cmd4
fi
  • case
#! /bin/bash
printf "Input integer number: "
read num

case $num in
  1)
    echo "Monday"
    ;;
  2)
    echo "Tuesday"
    ;;
  3)
    echo "Wednesday"
    ;;
  4)
    echo "Thursday"
    ;;
  5)
    echo "Friday"
    ;;
  6)
    echo "Saturday"
    ;;
  7)
    echo "Sunday"
    ;;
  *)
    echo "error"
esac

case语法

case expression in
    pattern1)
        statement1
        ;;
    pattern2)
        statement2
        ;;
    *)
        statementn
esac

pattern)表示一个分支的条件,;;双分好表示一个分支的结束,*)表示默认分支,esac表示case结束

9.循环
  • for
for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

或者

for (( EXP1; EXP2; EXP3 ))
do
    command1
    command2
    command3
done
  • while[当condition写成:时表示死循环]
while condition
do
    command
done
  • until
until condition
do
    command
done
10.函数
11.文件包含

---待完善---

你可能感兴趣的:(shell脚本编程基础)