Bash - ujian jika fail atau direktori wujud

Bash - ujian jika fail atau direktori wujud

Sekiranya anda perlu mengesahkan sama ada fail atau direktori wujud, anda boleh menggunakan arahan ujian. Ia akan kembali benar jika terdapat fail atau direktori, dan sebaliknya palsu. Perintah ujian boleh digunakan dengan mana -mana parameter berikut:

Artikel ini mempunyai beberapa butiran mengenai ujian jika fail atau direktori wujud dalam sistem. Yang boleh sangat membantu anda semasa menulis skrip shell.

#1. Uji jika fail wujud

Sekiranya kita memerlukan menambah beberapa kandungan atau perlu membuat fail dari skrip. Pertama, pastikan bahawa fail sudah ada atau tidak. Contohnya salah satu skrip saya membuat log dalam fail /tmp/testfile.log Dan kita perlu memastikan fail ini wujud atau tidak

#!/bin/bash jika [-f/tmp/testfile.log] kemudian echo "fail wujud" fi
123456#!/bin/bash jika [-f/tmp/testfile.log] kemudian echo "fail wujud" fi

Kenyataan di atas juga boleh ditulis menggunakan ujian Kata kunci seperti di bawah

#!/bin/bash jika test -f/tmp/testfile.log kemudian echo "fail wujud" fi
123456#!/bin/bash jika test -f/tmp/testfile.Logthen echo "Fail wujud" FI

Atau dalam satu baris kita boleh menulisnya seperti di bawah. Ini sangat berguna semasa menulis dalam skrip shell.

[-f /tmp /testfile.log] && echo "Fail wujud"
1[-f /tmp /testfile.log] && echo "Fail wujud"

untuk menambah bahagian lain dalam perintah di atas

[-f /tmp /testfile.log] && echo "Fail wujud" || echo "Fail tidak wujud"
1[-f /tmp /testfile.log] && echo "Fail wujud" || echo "Fail tidak wujud"

#2. Uji jika direktori wujud

Kadang -kadang kita perlu membuat fail di dalam direktori tertentu atau memerlukan direktori untuk alasan lain, kita harus memastikan bahawa direktori itu wujud. Contohnya kita periksa /tmp/mydir wujud untuk tidak.

#!/bin/bash jika [-d/tmp/mydir] kemudian echo "Direktori wujud" fi
123456#!/bin/bash jika [-d/tmp/mydir] kemudian echo "Direktori wujud" fi

Kenyataan di atas juga boleh ditulis menggunakan ujian Kata kunci seperti di bawah

#!/bin/bash jika test -d/tmp/mydir kemudian echo "Direktori wujud" fi
123456#!/bin/bash jika test -d/tmp/mydirthen echo "Direktori wujud" fi

Atau dalam satu baris kita boleh menulisnya seperti di bawah

[-d /tmp /mydir] && echo "Direktori"
1[-d /tmp /mydir] && echo "Direktori"

#3. Buat fail/direktori jika tidak ada

Ini adalah amalan terbaik untuk memeriksa kewujudan fail sebelum mencipta mereka yang lain, anda akan mendapat mesej ralat. Ini sangat membantu semasa membuat skrip shell diperlukan untuk memfailkan atau penciptaan direktori semasa runtime.

Untuk fail:

[ ! -f /tmp /testfile.log] && sentuh /tmp /testfile.log
1[ ! -f /tmp /testfile.log] && sentuh /tmp /testfile.log

Untuk direktori:

[ ! -d /tmp /mydir] && mkdir -p /tmp /mydir
1[ ! -d /tmp /mydir] && mkdir -p /tmp /mydir