Массив строки расширен до пути?

Это перестало работать потому что перенаправление >> всегда делается перед выполнением команды независимо от команды.

В этом случае оболочка работает как Вы (не корень) и пытается добавить к .../config файл с помощью текущих полномочий, не корень, и сбои прежде sudo даже работает.

Общая метафора для того, чтобы сделать, что предназначает Ваша команда:

sudo tee --append /home/griff/.mplayer/config < .mplayer/config

(предполагающий, что Вы прочитали разрешение для .mplayer/config). Поскольку /home/griff/... открыт tee в корневом контексте sudo это имеет корневые полномочия записать тот файл.

Я не дик об этом подходе, поскольку он копирует содержание .mplayer/config к стандартному выводу - наряду с добавлением его в файл griff - но он действительно работает.

3
24.05.2011, 00:37
1 ответ
for array_item in "${my_array[@]}"
do 
    ...
done

или

for idx in $(seq ${#my_array})
do
    array_item="${my_array[$idx]}"
done
5
27.01.2020, 21:17
  • 1
    не, не работа, список файлов, все еще расширенный. –  uray 19.09.2010, 01:48
  • 2
    Первый работает на меня в ударе 3.2.48 и обоих в zsh 4.3.9. –  Maciej Piechotka 19.09.2010, 01:59
  • 3
    , о, хорошо, мой отказ я должен повторить кавычки использования для array_item (Я использую удар 4.1.7 btw) –  uray 19.09.2010, 02:22
  • 4
    Хороший для слушания его. Я нахожусь в "неправильной" системе, таким образом, я должен был протестировать ее на сервере оболочки - следовательно не совершенно новый ;) –  Maciej Piechotka 19.09.2010, 02:56
  • 5
    я думаю for idx in ${!a[@]} предпочтительно для использования seq так как это старается не излишне использовать внешнюю программу и работает, даже если массив является разреженным. –  Paused until further notice. 19.09.2010, 07:04

Теги

Похожие вопросы