bash脚本入门

    xiaoxiao2023-03-28  6

    1.基本的操作,就是终端上经常使用的命令: cp ,ln ,cd 等等

    2.写文件(配置文件等): sudo touch /[file path]/[file name] echo “one line text”>>/[file path]/[file name]

    如有换行符等: echo -e “one line text \n\n”>>/[file path]/[file name]

    3.输入参数(比如 bash.sh parm1 parm2 …) 必要的符号: $# : 参数的个数 如在终端输入 ./bash.sh parm1 parm2 此时 $# 为3 $0 : 在上例中表示”bash.sh” $1 : 在上例中表示”parm1” shift : 将参数列表向左移动一位,比如在终端输入 ./bash.sh -c 1 此时echo $1 则会打印 -c 此后加入shift : echo $1 shitf echo $1 则会打印: -c 1

    有参数的脚本大致分为两种: 1)参数个数固定,顺序固定 比如 bash.sh 1 2 3 2)参数个数与顺序都不定 比如 bash.sh -c 1 -v 9 …

    1)参数固定: 这种情况直接可以使用$0 ,$1等 bash.sh 1 2 3 则 使用$1 表示第一个参数, 也就是1 $2 表示第二个参数, 也就是2 以此类推。 优缺点: 优点是简单,对于参数个数不多的情况适用。 缺点是无法判断输入参数的顺序是否正确,只能判断输入的参数的个数是否正确; 对于参数过多的脚本不适用,并且对于参数个数不固定的脚本不适用。 2)参数不固定: 这种情况比较常见,比如 ./bash.sh -v 3.0 -c 1 -ip 10.0.0.1 等 这里就要判断输入的参数的类型: -v -c -ip 等等,然后根据参数类型来输入参数。假如-v 表示版本号, 那么3.0就是-v的参数。 这里使用最原始的方法,利用循环遍历整个参数列表,判断参数类型,在对应赋值。

    解读以上的小代码:

    while[-n “$1”]; do 当$1 存在, 则进行循环 (-n 判断是存在) case “$1” in esac 判断$1的内容

    -v) 如果$1内容是 -v version=”$2” $1的内容是 -v 那么 $2 的内容当然是 -v 后的那个参数,比如 -v 3.0 那么 version就等于 3.0 shift

    通过对参数列表的移位,对参数进行读取。

    转载请注明原文地址: https://ju.6miu.com/read-1209316.html
    最新回复(0)