Shell脚本在String中传递参数

时间:2015-10-22 17:34:15

标签: string shell parameters

如何将参数传递给shell脚本,该脚本是带有空格的长字符串和" - "?这是我现在拥有的:

/usr/test.sh -g filesystem -q -p "-p \"/usr/\" -s \"some intern string\" -q"  

test.sh 脚本会识别两个-p,两个-q以及其他一些不正确的东西。但第一个-p背后的值应该是一个大字符串:-p "/usr/" -s "some intern string" -q

我的错误是什么?

感谢您的帮助,
问候,
CHRISS

1 个答案:

答案 0 :(得分:1)

查看传递内容的一种方法是运行- fn x => x; val it = fn : 'a -> 'a - (fn x => x) 3.0; val it = 3.0 : real - (fn x => x) 3; val it = 3 : int - (fn x => x) "hello"; val it = "hello" : string - (fn x => x) [1,2,3]; val it = [1,2,3] : int list ,它会在printf "<<%s>>\n" yourcommand包围的行上打印每个参数,以便轻松消除歧义:

<<..>>

如您所见,$ printf "<<%s>>\n" /usr/test.sh -g filesystem -q -p "-p \"/usr/\" -s \"some intern string\" -q" <</usr/test.sh>> <<-g>> <<filesystem>> <<-q>> <<-p>> <<-p "/usr/" -s "some intern string" -q>> 的参数确实是字符串-p

如果-p "/usr/" -s "some intern string" -q不起作用,则表示test.sh中的错误,而不是此次调用中的错误。