Передача аргументов с кавычками и двойными кавычками в скрипт bash


11

На данный момент у меня есть:

#!/bin/bash
screen -p 'ScreenName' -x eval 'stuff '"'"$@"'"'\015'
echo eval 'stuff '"'"$@"'"'\015'

Но когда я называю свой сценарий как:

# script.sh asd "asd" 'asd'

мои аргументы переданы как: asd asd asd

и я получаю вывод:

eval stuff 'asd asd asd'\015

Я кроме: asd "asd" 'asd'

Как я могу изменить свой скрипт, чтобы передать всю строку аргументов со всеми кавычками?

Ответы:


7

Ваша оболочка не передает кавычки в скрипт. Если вы хотите передать кавычки, избегайте их с обратной косой чертой:

# ./script.sh asd \"asd\" \'asd\'

1
Это не то, что я хочу, но в любом случае нет других решений (потратил всю ночь в поисках).
Артур Халма

что решение
Джейсон

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.