Я хочу запустить некоторую команду, назовем ее «test» из моего сценария bash и поместим туда некоторые из параметров из переменной bash.Bash quotes disable escaping
Мой сценарий:
#!/bin/bash -x
PARAMS="-A 'Foo' -B 'Bar'"
./test $PARAMS
У меня есть:
+ PARAMS='-A '\''Foo'\'' -B '\''Bar'\'''
+ ./test -A ''\''Foo'\''' -B ''\''Bar'\'''
Это неправильно!
Еще один случай:
#!/bin/bash -x
PARAMS='-A '"'"'Foo'"'"' -B '"'"'Bar'"'"
./test $PARAMS
Результата Грустно тоже:
+ PARAMS='-A '\''Foo'\'' -B '\''Bar'\'''
+ ./test -A ''\''Foo'\''' -B ''\''Bar'\'''
Итак, вопрос - как я могу использовать Баш переменного в качестве аргументов командной строки для некоторой команды. Переменная - это что-то вроде «-A 'Foo' -B 'Bar'" (точно с одиночными кавычками) И результат должен быть вызовом программы «./test» с аргументами «-A 'Foo' -B 'Bar' "следующим образом:
./test -A 'Foo' -B 'Bar'
Спасибо!
Возможно, я должен добавить некоторый параметр в #!/Bin/bash, например «-x», который я добавил, чтобы увидеть необработанные команды. –
Если вы просто эхо ваш первый, он находится в правильном формате. '-x' просто показывает, как bash видит это не ваш скрипт. – 123