参见英文答案 >
Concatenate all arguments and wrap them with double quotes6个
我想连接传递给我的bash脚本的所有参数,除了标志.
我想连接传递给我的bash脚本的所有参数,除了标志.
例如,如果脚本接受如下输入:
- ./myBashScript.sh -flag1 exampleString1 exampleString2
我希望结果是“exampleString1_exampleString2”
解决方法
- function concatenate_args
- {
- string=""
- for a in "$@" # Loop over arguments
- do
- if [[ "${a:0:1}" != "-" ]] # Ignore flags (first character is -)
- then
- if [[ "$string" != "" ]]
- then
- string+="_" # Delimeter
- fi
- string+="$a"
- fi
- done
- echo "$string"
- }
- # Usage:
- args="$(concatenate_args "$@")"