Unix / Linux - Pergantian Shell

Apa itu Substitusi?

Shell melakukan substitusi ketika menemukan ekspresi yang berisi satu atau lebih karakter khusus.

Contoh

Di sini, nilai pencetakan variabel diganti dengan nilainya. Waktu yang sama,"\n" diganti dengan baris baru -

#!/bin/sh

a=10
echo -e "Value of a is $a \n"

Anda akan menerima hasil sebagai berikut. Di sini-e opsi memungkinkan interpretasi pelarian garis miring terbalik.

Value of a is 10

Berikut adalah hasil tanpa -e pilihan -

Value of a is 10\n

Urutan escape berikut yang dapat digunakan dalam perintah echo -

Sr.No. Escape & Deskripsi
1

\\

garis miring terbalik

2

\a

alert (BEL)

3

\b

menghapus

4

\c

tekan trailing newline

5

\f

bentuk pakan

6

\n

garis baru

7

\r

Kereta kembali

8

\t

tab horizontal

9

\v

tab vertikal

Anda bisa menggunakan -E opsi untuk menonaktifkan interpretasi pelolosan garis miring terbalik (default).

Anda bisa menggunakan -n opsi untuk menonaktifkan penyisipan baris baru.

Pergantian Perintah

Substitusi perintah adalah mekanisme di mana shell melakukan serangkaian perintah tertentu dan kemudian mengganti keluarannya sebagai pengganti perintah.

Sintaksis

Substitusi perintah dilakukan ketika perintah diberikan sebagai -

`command`

Saat melakukan penggantian perintah, pastikan Anda menggunakan backquote, bukan karakter petik tunggal.

Contoh

Substitusi perintah umumnya digunakan untuk menetapkan keluaran dari suatu perintah ke variabel. Masing-masing contoh berikut menunjukkan substitusi perintah -

#!/bin/sh

DATE=`date`
echo "Date is $DATE"

USERS=`who | wc -l`
echo "Logged in user are $USERS"

UP=`date ; uptime`
echo "Uptime is $UP"

Setelah eksekusi, Anda akan menerima hasil berikut -

Date is Thu Jul  2 03:59:57 MST 2009
Logged in user are 1
Uptime is Thu Jul  2 03:59:57 MST 2009
03:59:57 up 20 days, 14:03,  1 user,  load avg: 0.13, 0.07, 0.15

Substitusi Variabel

Substitusi variabel memungkinkan programmer shell untuk memanipulasi nilai variabel berdasarkan statusnya.

Berikut adalah tabel berikut untuk semua kemungkinan substitusi -

Sr.No. Formulir & Deskripsi
1

${var}

Gantikan nilai var .

2

${var:-word}

Jika var adalah null atau unset, word digantivar. Nilai var tidak berubah.

3

${var:=word}

Jika var adalah null atau unset, var disetel ke nilaiword.

4

${var:?message}

Jika var adalah null atau unset, pesan akan dicetak menjadi kesalahan standar. Ini memeriksa bahwa variabel disetel dengan benar.

5

${var:+word}

Jika var disetel, kata diganti dengan var. Nilai var tidak berubah.

Contoh

Berikut adalah contoh untuk menunjukkan berbagai keadaan substitusi di atas -

#!/bin/sh

echo ${var:-"Variable is not set"}
echo "1 - Value of var is ${var}"

echo ${var:="Variable is not set"}
echo "2 - Value of var is ${var}"

unset var
echo ${var:+"This is default value"}
echo "3 - Value of var is $var"

var="Prefix"
echo ${var:+"This is default value"}
echo "4 - Value of var is $var"

echo ${var:?"Print this message"}
echo "5 - Value of var is ${var}"

Setelah eksekusi, Anda akan menerima hasil berikut -

Variable is not set
1 - Value of var is
Variable is not set
2 - Value of var is Variable is not set

3 - Value of var is
This is default value
4 - Value of var is Prefix
Prefix
5 - Value of var is Prefix