Pertanyaan dan Jawaban Wawancara Praktis tentang Linux Shell Scripting


Dengan tanggapan luar biasa yang kami dapatkan pada artikel Seri Wawancara, yang pertama dari jenisnya di situs web Panduan Linux mana pun dalam bentuk Suka, Masukan dalam komentar, serta Alamat Email pribadi membuat kami berpindah dari satu artikel ke artikel berikutnya. artikel.

Berikut ini link ke artikel Seri Wawancara yang telah dipublikasikan di linux-console.net, di mana kami telah membahas banyak topik yaitu, FTP, MySQL, Apache, Scripting, Perintah Linux, dll.

Melanjutkan ke seri di atas, di sini kami hadir dengan 5 Pertanyaan Wawancara Linux yang luar biasa dan jawabannya. Dukungan Anda (Pembaca dan Pengunjung tetap linux-console.net) selalu dibutuhkan untuk menyukseskannya.

1. Tulis skrip shell untuk mendapatkan tanggal, waktu, nama pengguna, dan direktori kerja saat ini.

Sekarang buat file bernama 'userstats.sh' dan tambahkan kode berikut ke dalamnya.

#!/bin/bash 
echo "Hello, $LOGNAME" 
echo "Current date is `date`" 
echo "User is `who i am`" 
echo "Current directory `pwd`"

Tempatkan izin eksekusi dan jalankan skrip seperti yang ditunjukkan di bawah ini.

chmod 755 userstats.sh 
./userstats.sh
Contoh Keluaran
Hello, avi 
Current date is Sat Jun  7 13:05:29 IST 2014 
User is avi      pts/0        2014-06-07 11:59 (:0) 
Current directory /home/avi/Desktop
2. Tulis Skrip Shell yang menambahkan dua angka jika disediakan sebagai Argumen Baris perintah dan jika kedua angka tersebut tidak dimasukkan, maka akan dihasilkan Pesan Kesalahan bersama dengan satu Baris deskripsi cara menggunakan.

Sekali lagi buat file bernama 'two-numbers.sh' dan tambahkan konten berikut ke dalamnya.

#!/bin/bash 
The Shebang

if [ $# -ne 2 ] 
If two Inputs are not received from Standard Input

then 
then execute the below statements

    echo "Usage - $0   x    y" 
    # print on standard output, how-to use the script (Usage - ./1.sh   x    y )

    echo "        Where x and y are two nos for which I will print sum" 
    # print on standard output, “Where x and y are two nos for which I will print sum ”

    exit 1 
    # Leave shell in Error Stage and before the task was successfully carried out.

fi 
End of the if Statement.

    echo "Sum of $1 and $2 is `expr $1 + $2`"
    # If the above condition was false and user Entered two numbers as a command Line Argument,   
       it will show the sum of the entered numbers.

Tetapkan izin pelaksana pada file dan jalankan skrip seperti yang ditunjukkan di bawah ini.

chmod 755 two-numbers.sh

Kondisi 1: Menjalankan skrip tanpa memasukkan dua angka sebagai argumen baris perintah, Anda akan mendapatkan output berikut.

Contoh Keluaran
./two-numbers.sh

Usage - ./two-numbers.sh   x    y 
        Where x and y are two nos for which I will print sum

Kondisi 2: Ketika Angka dimasukkan sebagai argumen baris perintah, Anda akan mendapatkan hasil seperti yang ditunjukkan.

./two-numbers.sh 4 5 

Sum of 4 and 5 is 9

Oleh karena itu skrip shell di atas memenuhi kondisi seperti yang disarankan dalam pertanyaan.

3. Anda perlu mencetak Nomor tertentu, katakanlah 10572, dalam urutan terbalik menggunakan skrip Shell sehingga input diberikan hanya menggunakan Argumen Baris perintah. Jika data input tidak disediakan sebagai Argumen Baris Perintah, data tersebut akan muncul dan error serta menyarankan cara menggunakan skrip. Tulis skripnya tetapi sebelum itu beri tahu saya algoritma yang perlu diterapkan di sini.

Algoritma

  1. 1. Misalkan Nomor Masukan=n
  2. 2. Atur rev=0, sd=0 (Mundur dan satu digit diatur ke 0)
  3. 3. n % 10, akan mencari dan memberikan satu digit paling kiri
  4. 4. nomor mundur dihasilkan sebagai rev * 10 + sd
  5. 5. Kurangi Nomor Input (n) sebanyak 1.
  6. 6. jika n > 0, lanjutkan ke langkah 3 lagi ke setp 7
  7. 7. Cetak putaran

Sekarang lagi, buat file bernama 'numbers.sh' dan tambahkan kode berikut ini.

#!/bin/bash 
if [ $# -ne 1 ] 
then 
    echo "Usage: $0   number" 
    echo "       I will find reverse of given number" 
    echo "       For eg. $0 0123, I will print 3210" 
    exit 1 
fi 

n=$1 
rev=0 
sd=0 

while [ $n -gt 0 ] 
do 
    sd=`expr $n % 10` 
    rev=`expr $rev \* 10  + $sd` 
    n=`expr $n / 10` 
done 
    echo  "Reverse number is $rev"

Berikan izin eksekusi pada file dan jalankan skrip seperti yang ditunjukkan di bawah ini.

chmod 755 numbers.h

Kondisi 1: Ketika Input tidak diberikan sebagai argumen baris perintah, Anda akan mendapatkan output berikut.

Contoh Keluaran
./numbers.sh

Usage: ./numbers.sh  number 
       I will find reverse of given number 
       For eg. ./2.sh 123, I will print 321

Kondisi 2: Saat Input diberikan sebagai Argumen baris perintah.

./numbers.sh 10572 

Reverse number is 27501

Skrip di atas berfungsi dengan sempurna dan hasilnya sesuai dengan yang kami butuhkan.

4. Anda seharusnya menghitung penghitungan bilangan real langsung dari terminal dan bukan skrip shell apa pun. Apa yang akan Anda lakukan (misalkan bilangan realnya adalah 7,56 dan 2,453)?

Misalnya, jalankan perintah berikut untuk menghitung angka secara real time menggunakan perintah bc seperti yang ditunjukkan.

echo 7.56 + 2.453 | bc

10.013
5. Anda seharusnya mencari nilai pi hingga 100 tempat desimal, cara termudah untuk mendapatkan hasilnya.
pi 100 

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067

Jelas sekali! Kita harus menginstal paket 'pi'. Lakukan saja apt atau yum untuk mendapatkan paket yang diperlukan untuk menginstal 'pi' ke distribusi yang Anda gunakan.

Itu saja untuk saat ini. Saya akan segera berada di sini lagi dengan artikel menarik lainnya. Sampai saat itu, pantau terus dan terhubung ke linux-console.net. Jangan lupa untuk memberi kami umpan balik yang berharga di bagian komentar di bawah.