欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

shell脚本编程基础

程序员文章站 2022-07-10 09:29:23
...
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.分支
  • 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.文件包含

---待完善---