Я пытаюсь проверить существование некоторых файлов, используя команду -f, а затем файл bath, но у меня ошибка Это мой сценарий:
initUCounter="/home/teeba/users_counter_initial_value"
initPCounter="/home/teeba/number_of_processes"
if [! -f $initUCounter && ! -f $initPCounter]
then
echo "0" > /tmp/users_counter_initial_value
echo "1" > /tmp/processes_counter_initial_value
fi
Помимо ответа от Rmano, вы можете использовать,
if [ ! -f $initUCounter ] && [ ! -f $initPCounter ]; then
some action
else
some other action
fi
Используйте оператор bash [[ ]]
, а не команду [
([
совпадает с командой test
):
if [[ ! -f $initUCounter && ! -f $initPCounter ]]
это должно работать.
См. это обсуждение для более подробной информации. (Страница bash pitfalls является обязательной для прочтения, когда вы начинаете писать сценарии ... избавит вас от долгих часов почесывания головы)