У мене є ifсценарій bash, який повинен перевірити, чи існує EITHER з 2-х файлів, якщо вони не існують, він повинен відповідати.
Код у мене:
if [[ ! -f /etc/benchmarking/code ]] && [[ ! -f /etc/benchmarking/code.class ]]; then
echo "match"
fi
Але це, здається, не працює чомусь.
Я на 110% впевнений, що ці 2 файли не існують. Я не отримую жодних помилок, він просто не вводиться if.
Я новачок у сценаріїх, коли я не знаю, що може бути не так.
[[ -f xxx ]]повертає істину, якщо існує xxx і є звичайним файлом (або символьним посиланням на звичайний файл). Він поверне помилковим, якщо його не існує, або якщо він не може визначити, існує чи ні, чи існує, але це не звичайний файл (каталог, труба, пристрій, сокет ...) або якщо це посилання до файлу, який не існує, або він не може визначити, існує він чи ні, чи це не звичайний файл ... [[ -e $file ]] || [[ -L $file ]]ближче до тесту на існування. ls -d -- "$file" > /dev/null 2>&1ще ближче. І, як правило, такий вид тесту призводить до умов перегонів. Можливо, є інший спосіб.
[[ ! -f /etc/.../... ]]; echo $?для кожного.