я работаю с утилитой (unison, но это не точка), который принимает параметры, как:манипулировать параметрами в ш
$ unison -path path1 -path path2 -path path3
Я хотел бы написать ш сценарий, который я мог бы работать так:
$ myscript path1 path2 path3
Я надеюсь на решение, совместимое с Posix, но также будет полезно использовать bash.
Я предполагаю, что это должно быть что-то вроде:
#!/bin/sh
unison ${*//-path }
Но это не работает.
EDIT: Хорошо, я думаю, что есть кое-что:
#!/bin/bash
PARAMS=
for arg in "[email protected]"
do
PARAMS+=" -path '$arg'"
done
unison $PARAMS
Проблемы это работает только в Баш, и я уверен, что есть лучший способ привести параметры.
Are вы надеетесь на однострочное решение, которое не включает цикл 'for'? – eduffy
Любое решение действительно – itsadok
Введение одиночных кавычек, вероятно, плохая идея. Как написано, цитаты видны командой unison, которая не является тем, что вы хотите. Защита внешних аргументов одинарными кавычками в порядке, если у вас нет ни одной кавычки в аргументах, - но вам, вероятно, понадобится eval, чтобы заставить ее работать правильно. –