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

В этот момент у меня есть:

#!/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'

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

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

 # ./script.sh asd \"asd\" \'asd\' 
 sh -c "screen -x 'ScreenName' -X eval 'stuff \"$@\"\015'"