Это перестало работать потому что перенаправление >>
всегда делается перед выполнением команды независимо от команды.
В этом случае оболочка работает как Вы (не корень) и пытается добавить к .../config
файл с помощью текущих полномочий, не корень, и сбои прежде sudo даже работает.
Общая метафора для того, чтобы сделать, что предназначает Ваша команда:
sudo tee --append /home/griff/.mplayer/config < .mplayer/config
(предполагающий, что Вы прочитали разрешение для .mplayer/config
). Поскольку /home/griff/...
открыт tee
в корневом контексте sudo это имеет корневые полномочия записать тот файл.
Я не дик об этом подходе, поскольку он копирует содержание .mplayer/config
к стандартному выводу - наряду с добавлением его в файл griff - но он действительно работает.
for array_item in "${my_array[@]}"
do
...
done
или
for idx in $(seq ${#my_array})
do
array_item="${my_array[$idx]}"
done
array_item
(Я использую удар 4.1.7 btw) – uray 19.09.2010, 02:22for idx in ${!a[@]}
предпочтительно для использованияseq
так как это старается не излишне использовать внешнюю программу и работает, даже если массив является разреженным. – Paused until further notice. 19.09.2010, 07:04