美文网首页
shell脚本语法

shell脚本语法

作者: 土人徐 | 来源:发表于2020-07-01 20:09 被阅读0次

    shell文件创建

    文件开始需要有标识行:

    #!/bin/sh
    

    变量

    定义变量时,变量名不加美元符号($),如:

    variableName="value"
    

    注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。

    使用变量
    使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:

    your_name="mozhiyan"
    echo $your_name
    echo ${your_name}
    

    使用 unset 命令可以删除变量。语法:

    unset variable_name
    

    使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
    下面的例子尝试更改只读变量,结果报错:

    #!/bin/bash
    
    myUrl="http://see.xidian.edu.cn/cpp/shell/"
    readonly myUrl
    myUrl="http://see.xidian.edu.cn/cpp/danpianji/"
    

    字符串替换

    ${变量/查找/替换值} 一个“/”表示替换第一个,”//”表示替换所有,当查找中出现了:”/”请加转义符”/”表示。

    r="origin/xzt/bugfix_alpha/origin/haha"
    # 替换第一个origin/为空, 输出:xzt/bugfix_alpha/origin/haha
    r=${r/origin\//}
    # 替换所有origin/为空,输出:xzt/bugfix_alpha/haha
    r=${r//origin\//}
    

    运算符

    文档:https://wiki.jikexueyuan.com/project/shell-tutorial/shell-operator.html

    ** 注意:条件表达式要放在方括号之间,并且要有空格,例如 [a==b] 是错误的,必须写成 [ a ==b ]。**

    if else

    # if后面必须要有空格,[]内部两边必须要有空格
    if [ a ]
    then
      echo "true"
    else
      echo "false"
    fi
    

    for

    for v in {1..5}
    do
        echo "Hello, Welcome $v times"
    done
    
    for((i = 1; i <= 5; i++))
    do
        echo "Hello, $i"
    done
    

    命令参数

    获取命令参数通过0(命令名称),1(第一个参数),$2(第二个参数)来获取。

    ./clean_branch xzt/hhh
    
    # clean_branch全路径
    echo $0
    # xzt/hhh
    echo $1
    

    读取用户输入

    # -p: 提示, command: 输入的参数变量,会等待输入
    read -p "确定是否执行删除,确认执行输入Y,否则输入N:" command
    

    相关文章

      网友评论

          本文标题:shell脚本语法

          本文链接:https://www.haomeiwen.com/subject/qsvhqktx.html