Bash连接数组

时间:2018-10-11 08:15:30

标签: linux bash shell

有没有一种方法可以联接(使用正确的引号和转义符)bash数组,以便它给我一个适合传递给bash -c的字符串?

原因: 我想编写一个函数foo,这样当我这样做时:

foo app "hello world.txt"

它将这样做:

sudo -u myuser ENVVAR=somevalue bash -c "perl app \"hello world.txt\""

1 个答案:

答案 0 :(得分:2)

bash -c将第一个参数作为命令字符串,并将其余的参数分配给从$0开始的位置参数。因此,您无需引用任何内容,只需传递参数即可:

function foo () {
    sudo -u myuser ENVVAR=somevalue bash -c 'perl "$0" "$@"' "$@"
}