Saya membaca contoh skrip bash shell:
#!/bin/bash
# This script makes a backup of my home directory.
cd /home
# This creates the archive
tar cf /var/tmp/home_franky.tar franky > /dev/null 2>&1
# First remove the old bzip2 file. Redirect errors because this generates some if the archive
# does not exist. Then create a new compressed file.
rm /var/tmp/home_franky.tar.bz2 2> /dev/null
bzip2 /var/tmp/home_franky.tar
# Copy the file to another host - we have ssh keys for making this work without intervention.
scp /var/tmp/home_franky.tar.bz2 bordeaux:/opt/backup/franky > /dev/null 2>&1
# Create a timestamp in a logfile.
date >> /home/franky/log/home_backup.log
echo backup succeeded >> /home/franky/log/home_backup.log
Saya mencoba memahami penggunaan "/ dev / null 2> & 1" di sini. Pada awalnya, saya pikir skrip ini menggunakan / dev / null untuk mengabaikan kesalahan dengan anggun, tanpa menyebabkan skrip crash (seperti mencoba menangkap penanganan pengecualian dalam bahasa pemrograman). Karena saya tidak melihat bagaimana menggunakan tar untuk mengkompres direktori menjadi file tar mungkin dapat menyebabkan segala jenis kesalahan.
tartidak ada dalam $ PATH Anda, karena tarlumpuh (Anda tidak pernah tahu), karena tidak ada ruang tersisa di perangkat, karena tarversi berubah dan sekarang memerlukan sintaks yang berbeda, karena disk menyebabkan kesalahan I / O. Saya yakin Anda bisa menemukan lebih banyak.
/dev/nulltidak akan mencegah crash, tetapi akan membersihkan aliran output stdout dan stderr.tardapat menyebabkan kesalahan dalam berbagai cara. Anda mungkin tidak memiliki akses tulis, file mungkin sudah ada, dll.