Я не обов'язково хочу відповіді, але якщо хтось міг би вказати мені на якусь літературу чи приклади. Я хотів би це зрозуміти.
Коли я запускаю сценарій, я отримую помилку:
Помилка синтаксису поблизу несподіваного маркера
fi
Я зробив висновок, що моя проблема полягає в моїй if
заяві, роблячи if
коментарі до моїх заяв і додаючи, echo "$NAME"
що відображає імена в /etc/
.
Коли я вношу зміни, видаляю #
з них if
і fi
додаю #
до них wc -c "$NAME"
, я отримую синтаксичну помилку, яку я перераховував вище. Я додав ;
між ]
тим. Я також перейшов then
до наступного рядка без резолюції.
#!/bin/bash
for NAME in /etc/*
do
if [ -r "$NAME" -af "$NAME" ] then
wc -c "$NAME"
fi
done
-af
робити?
-a
є надмірним, оскільки умова вже включена в -f
. --- У будь-якому випадку декілька умов у межах [ ]
(ця команда також доступна як test
) повинні бути об'єднані за допомогою логічних операторів, таких як -a
(і) або -o
(або), але, як було запропоновано у відповіді нижче, краще використовувати декілька команд [ ]
( test
) та приєднатися їх за допомогою операторів оболонки, як &&
або ||
.