Saya memiliki if
dalam skrip bash saya yang harus memeriksa apakah BAIK dari 2 file ada, jika tidak ada itu harus cocok.
Kode yang saya miliki:
if [[ ! -f /etc/benchmarking/code ]] && [[ ! -f /etc/benchmarking/code.class ]]; then
echo "match"
fi
Tetapi ini sepertinya tidak berhasil karena suatu alasan.
Saya 110% yakin bahwa 2 file ini tidak ada. Saya tidak mendapatkan kesalahan, hanya saja tidak masuk if
.
Saya baru mengenal bash scripting jadi saya tidak yakin apa yang salah.
[[ -f xxx ]]
mengembalikan true jika xxx ada dan merupakan file biasa (atau symlink ke file biasa). Ini akan mengembalikan false jika tidak ada, atau jika tidak dapat mengetahui apakah itu ada atau tidak atau jika ada tetapi bukan file biasa (direktori, pipa, perangkat, soket ...) atau jika itu adalah symlink ke file yang tidak ada atau tidak tahu apakah itu ada atau tidak atau bukan file biasa ... [[ -e $file ]] || [[ -L $file ]]
lebih dekat dengan tes keberadaan. ls -d -- "$file" > /dev/null 2>&1
bahkan lebih dekat. Dan sebagai aturan, tes semacam ini mengarah pada kondisi balapan. Mungkin ada cara lain.
[[ ! -f /etc/.../... ]]; echo $?
untuk masing-masing.