shell传递参数

简单介绍python的脚本传参

我们知道python脚本传递参数,有一个很方便的方式-sys.argv.它将脚本本身名字和后面的各项参数都放入一个列表。

使用的时候,索引这个列表就可以了。例如:

python test.py yes 10

sys.argv[0] # 脚本本身名字 (字符串test.py)

sys.argv[1] # 脚本后面第一个参数 (字符串yes)

sys.argv[2] # 脚本后面第2个参数  (字符串10)

其他参数以此类推,需要注意的是索引是有顺序的,这就要求你脚本传参的时候与索引的顺序一致。

shell脚本传参

shell脚本与python相似;想脚本传递参数的格式为:$n。n代表一个数字,类似于上面python传参里的索引,0为脚本本身的名字,

1为执行脚本的第一个参数,2为执行脚本的第二个参数。。。

举个例子:下面脚本test.sh

#!/bin/bash

echo "我们执行的脚本名是: $0"

echo "传入的第一个参数是: $1"

echo "传入的第二个参数是: $2"

执行的格式是: bash test.sh first second

另外,下面几个特殊字符对你处理参数可能会有些帮助。

$#  传递到脚本参数的个数

$$  脚本运行当前的ID号

$*  以一个字符串显示所有向脚本传递的参数

$@  与$*类似,但是使用时加引号,并在引号中返回每个参数

getopts传参

while getopts ":a:b:c:" opt; do

  case $opt in
    a)
    echo "参数a的值$OPTARG";;
    b)
    echo "参数b的值$OPTARG";;
    c)
    echo "参数c的值$OPTARG";;
    ?)
    echo "未知参数"
    exit 1;;
    esac
  done

# ----------------------------------------
# 来源:CSDN 
# 原文:https://blog.csdn.net/sinat_36521655/article/details/79296181 
# ----------------------------------------

执行格式:bash test.sh -a 1 -b 2 -c 3

猜你喜欢

转载自www.cnblogs.com/hanweiblog/p/10441886.html