shell脚本编程基础

2019-03-21  本文已影响0人  遇酒无缘
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.字符串
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.分支
[ -lt ]  #小于  [ $UID -lt 0 ]判断UID是否小于0
[ -le ] #小于等于  [ $? -le 0 ]判断上一步执行的返回码是否小于等于0
[ -gt ] #大于
[ -ge ] #大于等于
[ -ne ] #不等于
if condition
then
  cmd1
  cmd2
elif condition2
  cmd3
else
  cmd4
fi
#! /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 var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

或者

for (( EXP1; EXP2; EXP3 ))
do
    command1
    command2
    command3
done
while condition
do
    command
done
until condition
do
    command
done
10.函数
11.文件包含

---待完善---

上一篇 下一篇

猜你喜欢

热点阅读