Pengantar
Pada artikel ini, saya akan menjelaskan kepada Anda 6 Operator Rantai baris perintah Bash shell (operator Linux). Sekarang mari kita bahas apa itu operator chaining. Operator chaining adalah sesuatu yang membantu menjalankan banyak perintah sekaligus seperti kita menjalankan skrip dan tugas selesai secara otomatis. Biasanya, orang menggunakan Bash shell command line Chaining Operators (operator Linux) dalam skrip shell, tetapi kita juga dapat menggunakan operator ini pada prompt shell.
Di sini kita akan membahas Operator Chaining baris perintah Bash shell di bawah ini (operator Linux):
- &&Operator (DAN Operator)
- ATAU Operator (||)
- Operator DAN &ATAU (&&dan ||)
- Operator PIPA (|)
- Operator Titik Koma (;)
- Operator Ampersand (&)
Sekarang mari kita bahas masing-masing dan setiap Operator satu per satu.
1. &&Operator (DAN Operator)
Sintaks untuk menggunakan AND Operator adalah :
# command 1 && command 2
AND Operator akan mengeksekusi perintah kedua hanya jika perintah Pertama berhasil dijalankan. Sekarang lihat sintaks di atas. Di sini perintah 2 akan dijalankan hanya jika perintah 1 berhasil dijalankan. Misalnya :
Di sini seperti yang Anda lihat di bawah perintah pertama berhasil diselesaikan maka perintah kedua df -h dieksekusi.
$ ping -c 5 localhost && df -h PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.067 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.086 ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.085 ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.081 ms 64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.086 ms --- localhost ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4100ms rtt min/avg/max/mdev = 0.067/0.081/0.086/0.007 ms Filesystem Size Used Avail Use% Mounted on udev 966M 0 966M 0% /dev tmpfs 199M 12M 187M 6% /run /dev/sda1 18G 5.3G 12G 32% / tmpfs 992M 212K 992M 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 992M 0 992M 0% /sys/fs/cgroup tmpfs 199M 60K 199M 1% /run/user/1000
Sekarang mari kita uji Operator AND dengan cara yang berbeda. Di sini saya akan gagal pada perintah pertama dan melihat apakah perintah kedua dijalankan atau tidak.
$ ping -c 5 local && df -h ping: unknown host local
Seperti yang Anda lihat di atas, perintah Pertama gagal maka perintah kedua tidak dijalankan.
2. ATAU Operator (||)
Pada daftar kami, Operator Rantai baris perintah shell Bash Kedua (operator Linux) adalah Operator ATAU. Sintaks untuk menggunakan OR Operator adalah :
# command 1 || command 2
ATAU Operator benar-benar kebalikan dari &&Operator. ATAU Operator akan menjalankan perintah kedua hanya jika perintah Pertama Gagal. Sekarang mari kita ambil Contoh :
$ ping -c 5 local || df -h ping: unknown host local Filesystem Size Used Avail Use% Mounted on udev 966M 0 966M 0% /dev tmpfs 199M 12M 187M 6% /run /dev/sda1 18G 5.3G 12G 32% / tmpfs 992M 212K 992M 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 992M 0 992M 0% /sys/fs/cgroup tmpfs 199M 60K 199M 1% /run/user/1000
Seperti yang Anda lihat di atas, perintah kedua dijalankan yaitu “df -h” karena perintah pertama gagal.
3. DAN &ATAU Operator (&&dan ||)
Kombinasi &&Operator &OR Operator (||) cukup menarik dan akan memberikan hasil yang bagus jika Anda menggunakannya dengan benar. Kombinasi dari 2 operator ini seperti pernyataan if…else dalam pemrograman. Mari kita ambil contoh sehingga Anda akan mendapatkan lebih banyak Ide tentang ini :
Contoh :1
Di sini saya mencoba untuk mensukseskan perintah Pertama dan setelah sukses menjalankan perintah pertama, kita akan mendapatkan pesan Direktori berhasil dibuat.
$ mkdir data && echo "Directory created successfully" || echo "Directory creation failed" Directory created successfully
Seperti yang Anda lihat di atas, perintah pertama kami berhasil dieksekusi sehingga kami bisa mendapatkan pesan yang diperlukan.
Contoh :2
Disini saya mencoba Failed the First command dan setelah Failed the first command kita akan mendapatkan pesan User creation failed.
$ useradd helpdesk && echo "User created successfully" || echo "User creation failed" useradd: user 'helpdesk' already exists User creation failed
Seperti yang Anda lihat di atas, perintah pertama kami gagal sehingga kami bisa mendapatkan pesan yang diperlukan.
4. Operator PIPA (|)
Operator Rantai baris perintah Bash shell Keempat (operator Linux) adalah Operator PIPA (|). PIPE adalah sejenis operator yang dapat digunakan untuk menampilkan output dari perintah pertama dengan mengambil input ke perintah kedua. Misalnya, Anda ingin memeriksa semua proses sistem yang sedang berjalan menggunakan perintah ps -ef. tetapi karena daftar prosesnya sangat panjang sehingga tidak dapat dicakup dalam satu layar. Dalam hal ini, Anda dapat menggunakan Operator Filter dengan perintah more. Lihat perintah di bawah ini :
$ ps -ef | more UID PID PPID C STIME TTY TIME CMD 0 1 0 0 19Oct18 ?? 28:26.69 /sbin/launchd 0 47 1 0 19Oct18 ?? 0:39.18 /usr/sbin/syslogd 0 48 1 0 19Oct18 ?? 0:18.18 /usr/libexec/UserEventAgent (System) 0 51 1 0 19Oct18 ?? 0:15.91 /System/Library/PrivateFrameworks/Uninstall.framework/Resources/uninstalld 0 52 1 0 19Oct18 ?? 0:34.08 /usr/libexec/kextd 0 53 1 0 19Oct18 ?? 4:35.44 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/Support/fseventsd 55 58 1 0 19Oct18 ?? 0:02.25 /System/Library/CoreServices/appleeventsd --server 0 59 1 0 19Oct18 ?? 11:23.76 /usr/sbin/systemstats --daemon 0 61 1 0 19Oct18 ?? 0:40.65 /usr/libexec/configd 0 62 1 0 19Oct18 ?? 6:05.79 /System/Library/CoreServices/powerd.bundle/powerd 0 63 1 0 19Oct18 ?? 1:16.99 /Library/PrivilegedHelperTools/com.80pct.FreedomHelper 0 67 1 0 19Oct18 ?? 3:01.31 /usr/libexec/logd ...
5. Operator titik koma (;)
Baris perintah shell kelima Bash Chaining Operator (operator Linux) adalah Operator Titik Koma (;). Operator titik koma mengeksekusi beberapa perintah sekaligus secara berurutan seperti yang disebutkan dan memberikan output tanpa bergantung pada keberhasilan &kegagalan perintah lain seperti &&Operator dan OR Operator (||). Lihat contoh di bawah ini :
$ ping -c 5 localhost ; ifconfig ens33 ; df -h PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.063 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.091 ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.085 ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.086 ms 64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.086 ms --- localhost ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4091ms rtt min/avg/max/mdev = 0.063/0.082/0.091/0.011 ms ens33 Link encap:Ethernet HWaddr 00:0c:29:ff:cd:2e inet addr:192.168.43.185 Bcast:192.168.43.255 Mask:255.255.255.0 inet6 addr: 2405:204:f017:75dd:65af:f027:85c2:88eb/64 Scope:Global inet6 addr: 2405:204:f017:75dd:f076:72b8:fd36:757f/64 Scope:Global inet6 addr: fe80::b396:d285:b5b3:81c3/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:146608 errors:0 dropped:0 overruns:0 frame:0 TX packets:78275 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:188124508 (188.1 MB) TX bytes:6912561 (6.9 MB) Filesystem Size Used Avail Use% Mounted on udev 966M 0 966M 0% /dev tmpfs 199M 12M 187M 6% /run /dev/sda1 18G 5.3G 12G 32% / tmpfs 992M 212K 992M 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 992M 0 992M 0% /sys/fs/cgroup tmpfs 199M 60K 199M 1% /run/user/1000
6. Operator Ampersand (&)
Keenam Bash shell command line Chaining Operator (operator Linux) adalah Ampersand Operator (&). Ampersand Operator adalah jenis operator yang menjalankan perintah yang diberikan di latar belakang. Anda dapat menggunakan operator ini untuk menjalankan beberapa perintah sekaligus.
Keuntungan dari operator ini adalah tidak membiarkan Anda menunggu untuk menggunakan prompt shell sampai perintah yang diberikan selesai. Misalnya, Anda melakukan ping ke www.thegeekdiary.com dengan 50 paket. seperti yang Anda tahu bahwa itu akan memakan waktu untuk menyelesaikan 50 paket. Tanpa menggunakan Operator Ampersand Anda harus menunggu sampai 50 paket selesai untuk menjalankan perintah lain tetapi dengan menggunakan operator ini Anda dapat menggunakan prompt shell dan perintah yang diberikan saat ini yaitu ping akan berjalan di latar belakang dan itulah keindahan Ampersand Operator.
$ ping -c 50 localhost &
Anda juga dapat menjalankan beberapa perintah menggunakan Ampersand Operator. Lihat perintah di bawah ini.
$ ping -c 5 localhost & df -h & [1] 25962 [2] 25963 $ PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.052 ms Filesystem Size Used Avail Use% Mounted on udev 966M 0 966M 0% /dev tmpfs 199M 12M 187M 6% /run /dev/sda1 18G 5.3G 12G 32% / tmpfs 992M 212K 992M 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 992M 0 992M 0% /sys/fs/cgroup tmpfs 199M 56K 199M 1% /run/user/1000 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.091 ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.070 ms 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.091 ms 64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.117 ms --- localhost ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4072ms rtt min/avg/max/mdev = 0.052/0.084/0.117/0.022 ms
Seperti yang Anda lihat di atas, output dari kedua perintah datang secara bersamaan.