参数我有一个实用程序工作(unison,但是这不是重点)接受参数,如:操纵SH
$ unison -path path1 -path path2 -path path3
我想写出我可以运行像这样的sh脚本:
$ myscript path1 path2 path3
我希望符合POSIX标准的解决方案,但特定的bash也会很好。
我猜它应该是这样的:
#!/bin/sh
unison ${*//-path }
但是,这是行不通的。
编辑:OK,我觉得我得到的东西:
#!/bin/bash
PARAMS=
for arg in "[email protected]"
do
PARAMS+=" -path '$arg'"
done
unison $PARAMS
的问题是在bash这只作品,我敢肯定有一个更好的方式来引用参数。
是你希望有一个不涉及`for`循环的单线解决方案? – eduffy 2009-06-08 14:49:34
真的任何解决方案 – itsadok 2009-06-08 14:50:55
引入单引号可能是一个坏主意。正如所写的那样,引用是由unison命令看到的,这不是你想要的。如果参数中没有任何单引号,那么使用单引号保护参数的外部是可以的 - 但您可能需要一个eval才能使其正常工作。 – 2009-06-08 15:05:05