如何将参数传递给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
答案 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
中的错误,而不是此次调用中的错误。