Seorang administrator sistem akan selalu berpikir untuk mengotomatisasi sebagian besar tugasnya sehingga pekerjaan rutin diselesaikan dengan mudah dan dia dapat berkonsentrasi pada beberapa hal penting lainnya. Salah satu tugas tersebut adalah pembuatan akun Unix. Di sini kita akan melihat bagaimana kita dapat membuat akun Unix menggunakan skrip shell. Dalam perjalanan membuat skrip shell ini, meskipun tugasnya tampak sederhana, Anda akan belajar banyak hal !
1. Ikuti pedoman standar selama pembuatan skrip untuk keterbacaan yang lebih baik
Sebagian besar bahasa pemrograman lain seperti C, C++, JAVA memiliki seperangkat "Praktik Terbaik" yang akan diikuti selama pengkodean. Namun seperti namanya, skrip shell adalah jenis program yang ditulis untuk lingkungan run-time khusus pada waktu cepat. Waktu cepat berarti sangat kurang mengikuti aturan. Mengikuti praktik terbaik akan membuat skrip Anda lebih terbaca, dapat digunakan kembali, dan dapat dipelihara.
Jadi dalam skrip ini kita akan menggunakan fungsi untuk memodulasi kode. Cuplikan kode di bawah ini untuk penggunaan fungsi() :
usage() { echo "Usage: $PROGNAME [options] Options: -u username, Provide name for new user account creation -p password, Provide complex password -h help, display this help message and exit " exit 1; }
Fungsi penggunaan ini dipanggil setiap kali bantuan diperlukan dalam menjalankan skrip atau untuk argumen yang salah, dll.,
2. Bagaimana menerima argumen dalam skrip shell
Dalam skrip shell, menerima argumen dilakukan seperti di bawah ini :
$0 - Script Name $1 - First argument $2 - Second argument $# - No. of arguments $@ - All arguments
Contoh:
Tue Oct 29>$./account_creation.sh username password
Dalam contoh di atas $0 adalah account_creation.sh, $1 adalah nama pengguna dan $2 adalah kata sandi. $# akan mengembalikan 2 dan $@ mengembalikan semua argumen.
3. Opsi Baris Perintah menggunakan "Getopt" di skrip shell
Menyediakan opsi baris perintah adalah cara yang lebih baik untuk menyajikan skrip Anda kepada pengguna. Anda dapat menulis skrip untuk mendukung opsi baris perintah pendek dan panjang. Misalnya:untuk menampilkan pesan bantuan, Anda dapat menggunakan opsi “-h” atau “–help”. Konvensi yang umum adalah bahwa opsi panjang didahului dengan hash ganda dan yang kecil dengan tanda hubung tunggal. Di bawah ini adalah kodenya :
while getopts ":h:u:p:" OPTION do case "$OPTION" in h) usage ;; u) USERNAME=${OPTARG} ;; p) PASSWORD=${OPTARG} ;; \?) usage ;; esac done
Perintah getopts adalah perintah bawaan Korn/POSIX Shell yang mengambil opsi dan argumen opsi dari daftar parameter. Baca lebih lanjut tentang getopts di sini. Sederhananya untuk setiap opsi baris perintah, loop dieksekusi dan nilai yang sesuai untuk setiap opsi disimpan dalam variabel yang ditetapkan. Di bawah ini adalah cuplikan kode untuk memeriksa apakah parameter yang diteruskan kosong :
shift $((OPTIND-1)) if [ -z "${USERNAME}" ] || [ -z "${PASSWORD}" ]; then usage fi
4. Cara menjalankan perintah Linux dari skrip shell
Di sini tambahkan pengguna adalah perintah Linux yang digunakan untuk membuat akun.
/usr/sbin/useradd -m ${USERNAME}
Di sini Anda perlu memperhatikan bahwa jika pengguna sudah ada, maka Anda mungkin mendapatkan beberapa peringatan sebagai stderr yang ditunjukkan pada gambar di bawah ini :
5. Cara mengabaikan/mengalihkan stdout dan stderr ke file log
Bash dan shell modern lainnya menyediakan fasilitas pengalihan I/O. Nomor aliran I/O standar Linux adalah sebagai berikut :
Pegangan | Nama | Deskripsi |
0 | stdin | Masukan standar |
1 | stdout | Keluaran standar |
2 | stderr | Kesalahan standar |
sebuah. Mengarahkan aliran stderr ke file :
$script 2> error.log
b. Mengarahkan aliran stdout ke file :
$script 1> output.log
c. Arahkan ulang stderr dan stdout ke file :
$script &>file.out
Jika Anda ingin mengabaikan pesan stderr dan stdout ini, alihkan ke /dev/null alih-alih file.
$script 2>/dev/null
6. Cara memeriksa eksekusi perintah yang berhasil dalam skrip shell
$? adalah kode pengembalian (kode status) dari perintah atau skrip terakhir yang dieksekusi. 0 ==sukses, angka lain berarti gagal
7. Pernyataan bersyarat seperti if/else dalam skrip shell
Sebagian besar bahasa pemrograman dan skrip memiliki semacam ekspresi if/else dan begitu juga skrip shell. Tabel berikut menunjukkan ekspresi berbeda yang diizinkan.
-eq | sama dengan |
-ne | tidak sama dengan |
-lt | kurang dari |
-le | kurang dari atau sama dengan |
-gt | lebih besar dari |
-ge | lebih besar atau sama dengan |
Catatan:Tidak seperti kebanyakan bahasa lain, spasi sangat penting saat menggunakan jika pernyataan dalam skrip shell.
Kode di bawah ini tidak memeriksa kode status dari perintah terakhir dan sukses bergerak lebih jauh untuk membuat kata sandi. Saat menyetel sandi berhasil, kami akan menempatkan pesan di terminal untuk menyelesaikan aktivitas dengan sukses.
# Create User Account /usr/sbin/useradd -m ${USERNAME} 2>/dev/null if [ $? -eq "0" ]; then echo -e ${PASSWORD} | /usr/bin/passwd ${USERNAME} --stdin >/dev/null if [ $? -eq "0" ]; then echo "User ${USERNAME} created sucessfully" fi fi
Skrip Lengkap :Tautan unduhan
Lihat artikel menarik kami lainnya di LINUX :