加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash script

发布时间:2020-12-15 21:38:38 所属栏目:安全 来源:网络整理
导读:执行方式区别 三种执行方式: source 、 . 、 sh 小数点和sh是在开启一个子进程上执行,脚本里的变量和操作不会传到父进程 source直接在父进程中执行 例如配置生效用 source ~/.bashrc 而不用 sh ~/.bashrc 分支 判断符号[] 中括号内的==每个组件都需要空格

执行方式区别

  • 三种执行方式:source.sh
  • 小数点和sh是在开启一个子进程上执行,脚本里的变量和操作不会传到父进程
  • source直接在父进程中执行

    例如配置生效用source ~/.bashrc而不用sh ~/.bashrc

分支

判断符号[]

  • 中括号内的==每个组件都需要空格键分隔==,常用于if..then..fi中
  • 中括号内变量,最好都以双引号括起来
  • 中括号内常量,最好都以单引号或双引号括起来
  • 在==判断中,一个等号和两个等号是一样的==
name="VB Ta"
[ $name == "VB" ] #会返回参数过多错误,此时比较的是 VB Ta=="VB"
[ "$name" == "VB" ] #比较的是 "VB Ta"=="VB"

if...then

if [ 条件判断式1 ]; then
    balala
elif [ 条件判断式2 ]; then #等同于 else if
    balala
else
    balala
fi  #if倒过来写,表示if结束
  • &&表示and,||表示or

case...esac

case $变量名 in
    "第一个变量内容")
        程序段
        ;;  #每个类型结尾用两个连续分号处理
    "第二个变量内容")
        程序段
        ;;
    *)  #等同于default
        程序段
        ;;
esac

函数

function do()
{
    程序段
}
  • function定义一定要在脚本的最前面(先定义才能用)
  • function也有内置变量,$0,$1...,与script中的$num含义一样,但是==作用域不同==
    ```bash
    function do()
    {
    echo "Your choice is $1" #输出结果是 Your choice is 1
    }

    case $1 in #这个$1是执行脚本时输入的第一个参数
    "one")
    do 1 #这个1是给do函数的参数
    ;;
    *)
    do 0
    ;;
    esac
    ```

循环

不定循环

while do done

当条件成立时进行循环

while [ condition ] 
do      #循环开始
    程序段
done    #循环结束

until do done

当条件成立时终止循环

until [ condition ]
do
    程序段
done

for do done

与Java中的for循环含义一样,可用i++缩写

for (( 初始值; 限制值; 执行步长))
do
    程序段
done

for do done(固定循环)

已知要循环的次数

for var in con1 con2 con3 ...
do
    程序段
done

第一次循环时,$var内容为con1;第二次循环时,$var内容为con2;...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读