将具名参数传递给sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for ARGUMENT in "$@"
do

KEY=$(echo $ARGUMENT | cut -f1 -d=)
VALUE=$(echo $ARGUMENT | cut -f2 -d=)

case "$KEY" in
STEPS) STEPS=${VALUE} ;;
REPOSITORY_NAME) REPOSITORY_NAME=${VALUE} ;;
*)
esac


done

echo "STEPS = $STEPS"
echo "REPOSITORY_NAME = $REPOSITORY_NAME"

用法

1
bash my_scripts.sh  STEPS="ABC" REPOSITORY_NAME="stackexchange"

控制台结果:

1
2
STEPS = ABC
REPOSITORY_NAME = stackexchange

准备在脚本中使用STEPSREPOSITORY_NAME

参数的顺序无关紧要。

分享到 评论