Подскажите как правильно присвоить значение переменной $@ другой переменной.
Пояню:
В переменной $@ содержатся аргументы скрипта как отдельные слова. То есть к примеру если аргументы - список файлов, то даже если в именах файлов есть пробелы то в цикле
for i in "$@"
в переменной $i на каждой итеррации будет содержаться полное имя файла. А вот если присвоить другой переменной значение $@ то нормально обработать данный список уже не получается. Как ни пробовал присваивать - все равно в итоге новая переменная обрабатывается либо как список значений, разделенных пробелами (что в случае наличия пробелов в именах файлов не подходит), либо как одна строка.
Используйте массив. Например так:array=("$@")
тогда "${array[0]}" - первый аргумент, "${array[1]}" - второй и т.д.
Короче, man bash(3).
P.S. Из вопроса не ясно, чего вы хотите добиться в итоге...