在命令行参数之间添加逗号

Pra*_*tav 3 unix oracle bash shell scripting

我想通过unix脚本调用一个程序,它将是通用脚本,因此参数可以非常。调用语句将类似于

<scriptname> <procedure name> <param1> <param2> <param3> <param4>.. so on
Run Code Online (Sandbox Code Playgroud)

我需要的是从第二个命令行参数到最后一个参数我希望所有值都用逗号分隔,就像这样

<param1>,<param2>,<param3>,<param4>
Run Code Online (Sandbox Code Playgroud)

我可以使用循环来做到这一点,即来自第二个命令行参数我将迭代每个参数并在其中添加逗号。我的问题是我可以用一个命令来做到这一点吗?

注意:- 如果存在命令行参数,则应正确处理空格,最后一个参数后不应有任何逗号

Gor*_*son 6

"${*:2}" 扩展到从 $2 开始的参数列表,由 IFS 的第一个字符分隔:

saveIFS=$IFS
IFS=","
args="${*:2}"
IFS=$saveIFS
echo "$args"
Run Code Online (Sandbox Code Playgroud)

请注意,这会正确保留参数中的空格,而不是将它们转换为逗号。