Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash如何打印命令行参数的下一个元素_Bash - Fatal编程技术网

Bash如何打印命令行参数的下一个元素

Bash如何打印命令行参数的下一个元素,bash,Bash,我有一个脚本,它接受命令行6个输入 TestScript.sh arg1 arg1 out arg2 arg2 out arg3 arg3 out 所以我使用for循环检查参数名,因为序列可能会改变 我希望它旁边的参数用作值 for i; do if [ "$i" == "arg1" ] then if [ -z "$2" ] then echo "Wrokspace cancatination is empty" else ws_concatination=$2

我有一个脚本,它接受命令行6个输入

TestScript.sh arg1 arg1 out arg2 arg2 out arg3 arg3 out

所以我使用for循环检查参数名,因为序列可能会改变

我希望它旁边的参数用作值

for i; do 
if [ "$i" == "arg1" ]
then

  if [ -z "$2" ] 
     then echo "Wrokspace cancatination is empty"
     else ws_concatination=$2
     echo $ws_concatination
     fi
elif [ "$i" == "arg3" ] 
then
  if [ -z "$2" ] 
     then echo "provide poddeffilepath "
     else poddef_path=$2
     echo $file
     fi
elif [ "$i" == "arg5" ] 
then
  if [ -z "$2" ] 
    then echo "provide productname "
    else product=$2
    echo $product
    fi

fi

done

所以这里不是用$2,而是取下一个值“I”,意思是如果
“$i”==“arg1”
那么
ws_concatation将是
arg1out``表示java中的i+1个元素

可以在bash中完成吗
请帮忙

对于“$@”中的i,您需要此
;{…}
将i的
替换为
while($);解析参数后,Doi=$1
shift
参数。他是你的朋友。