Jika Anda sedang mengerjakan skrip Bash yang berinteraksi dengan file dan direktori, Anda mungkin mengalami situasi di mana Anda perlu memastikan bahwa file atau direktori itu ada. Ini membantu menghindari kemungkinan kesalahan untuk melakukan tindakan tertentu pada file yang tidak ada.
Dalam tutorial ini, saya akan menunjukkan beberapa cara untuk memeriksa apakah file atau direktori ada di skrip bash atau tidak. Mari kita mulai dengan file terlebih dahulu.
Periksa apakah file ada di skrip bash
Idenya di sini adalah menggunakan operator -f yang mengembalikan nilai true hanya jika itu adalah file biasa (bukan direktori).
Katakanlah Anda ingin memeriksa apakah file /home/user/my_file ada atau tidak. Inilah cara Anda memeriksa dengan tanda kurung siku
#!/bin/bash
if [ -f /home/user/my_file ]
then
echo "My file exists"
fi
Tetapi Anda tidak akan selalu mendapatkan nama file sebelumnya, bukan? Anda dapat memilikinya dalam variabel dan jika demikian, Anda dapat menggunakannya dengan cara ini.
#!/bin/bash
FILE=/home/user/my_file
if [ -f "$FILE" ]
then
echo "My file exists"
else
echo "My file doesn't exist"
fi
Pada dasarnya, yang penting adalah kondisi yang Anda gunakan dalam perintah if. Terserah Anda bagaimana Anda ingin menggunakan pernyataan if.
Misalnya, Anda dapat menulisnya dengan dua tanda kurung siku, pertahankan 'then' di baris yang sama dengan 'jika' dengan bantuan titik koma seperti ini:
#!/bin/bash
FILE=/home/user/my_file
if [ -f "$FILE" ]; then
echo "My file exists"
else
echo "My file doesn't exist"
fi
atau gabungkan seluruh pernyataan seperti ini:
[ -f /home/user/my_file ] && echo "My file exists" || echo "My file doesn't exist"
Periksa file yang ada di bash dengan tes
Anda juga dapat menggunakan tes di bash untuk melihat apakah file ada atau tidak. Ini hampir sama hanya saja Anda tidak menggunakan tanda kurung siku dalam pernyataan if:
#!/bin/bash
FILE=/home/user/my_file
if test -f "$FILE"
then
echo "My file exists"
else
echo "My file doesn't exist"
fi
Anda juga dapat menggunakan kode di atas dalam satu baris seperti ini:
test -f /home/user/my_file && echo "My file exists" || echo "My file doesn't exist"
Periksa apakah file tidak ada di skrip bash
Bagaimana jika sebaliknya dan Anda ingin memeriksa apakah file tidak ada di bash? Anda dapat menggunakan kode yang hampir sama seperti di atas dengan menggunakan operator negasi:
#!/bin/bash
FILE=/home/user/my_file
if [ ! -f "$FILE" ]
then
echo "My file doesn't exist"
fi
Sekarang setelah Anda mengetahui cara menangani file, mari beralih ke direktori.
Periksa apakah ada direktori dalam skrip bash
Kode untuk memeriksa direktori sama dengan yang Anda lihat di bagian sebelumnya. Satu-satunya perbedaan adalah Anda akan menggunakan -d alih-alih -f. -d mengembalikan nilai true hanya untuk direktori.
#!/bin/bash
if [ -d /home/user/my_dir ]
then
echo "My directory exists"
fi
Anda juga dapat menggunakan tes di sini:
#!/bin/bash
DIR=/home/user/my_dir
if test -d "$DIR"
then
echo "My directory exists"
else
echo "My directory doesn't exist"
fi
Periksa apakah direktori tidak ada di bash
Anda dapat menggunakan negasi lagi untuk memeriksa apakah direktori tidak ada:
#!/bin/bash
DIR=/home/user/my_dir
if [ ! -d "$DIR" ]
then
echo "My directory doesn't exist"
fi
Itu dia. Itu saja yang perlu Anda lakukan untuk memeriksa apakah direktori file ada di bash shell atau tidak.
Saya harap Anda menemukan tip bash ini bermanfaat. Jika Anda memiliki pertanyaan atau saran, silakan tinggalkan komentar di bawah.