将带引号和双引号的参数传递给 bash 脚本

Art*_*lma 11 shell bash quoting

此刻我有:

#!/bin/bash
screen -p 'ScreenName' -x eval 'stuff '"'"$@"'"'\015'
echo eval 'stuff '"'"$@"'"'\015'
Run Code Online (Sandbox Code Playgroud)

但是当我将我的脚本称为:

# script.sh asd "asd" 'asd'
Run Code Online (Sandbox Code Playgroud)

我的参数传递为:asd asd asd

我得到输出:

eval stuff 'asd asd asd'\015
Run Code Online (Sandbox Code Playgroud)

我除了 a: asd "asd" 'asd'

如何更改我的脚本以传递带有所有引号的整个参数行?

tep*_*pic 8

您的 shell 没有将引号传递给脚本。如果要传递引号,请使用反斜杠将它们转义:

# ./script.sh asd \"asd\" \'asd\'
Run Code Online (Sandbox Code Playgroud)