Я пытаюсь объявить пустой массив в Shell Script, но я испытываю ошибку.Shell Script: правильный способ объявить пустой массив
#!/bin/bash
[email protected]
newlist=()
for l in $list; do
newlist+=($l)
done
echo "new"
echo $newlist
Когда я исполню его, я получаю test.sh: 5: test.sh: Syntax error: "(" unexpected
Ошибка Код ошибки: –
Вы действительно руководите вашим скриптом как 'bash'? Похоже, скрипт запускается с помощью 'sh', и в этом случае массивы не поддерживаются. – chepner
Кроме того, присвоение '$ @' другому параметру теряет преимущества '$ @', а именно, что белое пространство внутри одного аргумента командной строки сохраняется. Ditch 'list' и используйте' for l in "$ @"; do' напрямую. – chepner