Saya baru di scripting ... Saya bisa melakukan hal-hal yang sangat mendasar, tetapi sekarang saya perlu bantuan.
Saya memiliki sistem file lokal yang hanya akan di-mount ketika saya perlu melakukan backup.
Saya mulai dengan ini.
#!/bin/bash
export MOUNT=/myfilesystem
if grep -qs $MOUNT /proc/mounts; then
echo "It's mounted."
else
echo "It's not mounted."; then
mount $MOUNT;
fi
Seperti yang saya katakan, saya sangat mendasar dalam scripting. Saya mendengar bahwa Anda dapat memeriksa status mount
perintah dengan melihat kode kembali.
RETURN CODES
mount has the following return codes (the bits can be ORed):
0 success
1 incorrect invocation or permissions
2 system error (out of memory, cannot fork, no more loop devices)
4 internal mount bug
8 user interrupt
16 problems writing or locking /etc/mtab
32 mount failure
64 some mount succeeded
Saya tidak tahu bagaimana memeriksanya. Ada panduan?
bash
shell-script
mount
maniat1k
sumber
sumber
; then
di skrip Anda.Jawaban:
Anda dapat memeriksa kode status
mount
, dan sebagian besar executable yang ditulis, dengan parameter khusus shell?
.Dari
man bash
:? Expands to the exit status of the most recently executed foreground pipeline.
Setelah Anda menjalankan
mount
perintah, segera mengeksekusiecho $?
akan mencetak kode status dari perintah sebelumnya.Tidak semua executable memiliki kode status yang didefinisikan dengan baik. Minimal, harus keluar dengan kode sukses (0) atau gagal (1), tetapi tidak selalu demikian.
Untuk memperluas (dan memperbaiki) contoh skrip Anda, saya menambahkan
if
konstruksi bersarang untuk kejelasan. Ini bukan satu-satunya cara untuk menguji kode status dan melakukan suatu tindakan, tetapi itu yang paling mudah dibaca ketika belajar.Untuk informasi lebih lanjut tentang "Keluar dan Keluar Status", Anda dapat merujuk ke Panduan Script Bash Lanjutan .
sumber
$MOUNT
. Script ini juga akan pecah jika sistem file memiliki karakter yang akan mengalami peletakan kata (spasi, dll.). Anda harus selalu mengutip ekspansi Anda.Banyak distro Linux yang memiliki
mountpoint
perintah. Secara eksplisit dapat digunakan untuk memeriksa apakah direktori adalah sebuah mountpoint. Sesederhana ini:sumber
Satu lagi cara:
sumber
findmnt
harus disertakan dengan parameter--source encfs
, jika tidak maka akan selalu mempertimbangkan direktori untuk dipasang karena jatuh kembali ke mount induk.Cara termudah yang tidak memerlukan root adalah:
atau untuk melihat apakah itu tidak dipasang:
sumber
mount
perintah tidak perlu akses root,df
difokuskan pada ruang disk tidak di mount point ...Pernyataan singkat
Periksa apakah sudah terpasang :
Periksa apakah tidak dipasang :
sumber
Saya sudah mencoba dengan skrip di bawah ini
Hanya input yang perlu Anda berikan adalah nama sistem file
sumber