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


11

目前,我有:

#!/bin/bash
screen -p 'ScreenName' -x eval 'stuff '"'"$@"'"'\015'
echo eval 'stuff '"'"$@"'"'\015'

但是当我将脚本称为:

# script.sh asd "asd" 'asd'

我的论点传递为:asd asd asd

然后我得到输出:

eval stuff 'asd asd asd'\015

我除外:asd“ asd”'asd'

如何更改脚本以将所有引号与所有引号一起传递?

Answers:


7

您的外壳程序没有将引号传递给脚本。如果要传递引号,请使用反斜杠将其转义:

# ./script.sh asd \"asd\" \'asd\'

1
这不是我想要的,但是无论如何都没有其他解决方案(花了整夜的时间搜索)。
亚瑟·霍尔玛

解决方案是什么
Jason

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.