GNU/Linux >> Belajar Linux >  >> Linux

Cara membuat perintah alias berfungsi di skrip bash atau file bashrc

setel alias ' untuk perintah apa pun dan perintah alias akan berfungsi dengan baik di shell interaktif, sedangkan alias tidak berfungsi di dalam skrip.

1. Cangkang interaktif

# alias ls1='ls -lrt'
# ls1
total 0
-rw-r--r-- 1 root root 0 Oct 12 12:14 file1
-rw-r--r-- 1 root root 0 Oct 12 12:14 file2

2. Di dalam skrip

# cat script.sh
#!/bin/bash
# Script to check the alias output
alias ls1='ls -lrt'
ls1
# chmod +x script.sh
# ./script.sh 
./script.sh: line 3: ls1: command not found

Alias ​​​​tidak diperluas saat shell tidak interaktif, kecuali expand_aliases opsi shell diatur menggunakan shopt . Ini dapat diuji dengan menambahkan perintah “alias” ke skrip bash sederhana dan eksekusi skrip tidak akan memberikan perintah alias, sedangkan pada shell interaktif akan memberikan daftar alias yang tersedia seperti yang ditunjukkan pada contoh di atas.

Dari halaman manual Bash :

Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is set using shopt (see the description of shopt under SHELL BUILTIN COMMANDS below).

Membuat alias berfungsi di skrip bash

Pendekatan berikut dapat digunakan, untuk membuat perintah alias berfungsi di skrip bash. Variabel dapat digunakan dalam skrip bash untuk mengatur opsi yang lebih disukai untuk perintah apa pun dan variabel tersebut dapat dirujuk di bagian skrip selanjutnya untuk mencukupi kebutuhan alias di dalam skrip.

Tambahkan perintah 'shopt -s expand_aliases' di awal skrip untuk memperluas alias dan membuat perintah alias berfungsi di skrip bash.

# cat script.sh
#!/bin/bash
# Script to check the alias output
shopt -s expand_aliases
alias ls1='ls -lrt'
ls1
# chmod +x script.sh
# ./script.sh
total 0
-rw-r--r-- 1 root root 0 Oct 12 12:14 file1
-rw-r--r-- 1 root root 0 Oct 12 12:14 file2


Linux
  1. Bagaimana Cara Men-debug Skrip Bash?

  2. Tujuan .bashrc Dan Bagaimana Cara Kerjanya?

  3. Dalam Skrip Bash Bagaimana Perintah Lanjutkan Bekerja Dengan Loop Tertanam?

  1. Bagaimana Cara Menonaktifkan Alias ​​​​Di Bash Untuk Satu Perintah??

  2. Bagaimana Cara Memeriksa Substring Di Shell Script Bash?

  3. Jalankan perintah bash pada pipa jenkins

  1. Bagaimana Cara Mendapatkan Penyelesaian Bash Untuk Alias ​​​​Perintah?

  2. Perintah Rm Dalam Skrip Bash Tidak Bekerja Dengan Variabel?

  3. Cara grep untuk unicode � dalam skrip bash