„set alias” pentru orice comandă și comanda alias va funcționa bine pe coajă interactiv, întrucât aliasing nu funcționează în interiorul script-ul.
1. Shell-ul interactiv
# alias ls1='ls -lrt'# ls1total 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. În interiorul script-ul
# cat script.sh#!/bin/bash# Script to check the alias outputalias ls1='ls -lrt'ls1
# chmod +x script.sh# ./script.sh ./script.sh: line 3: ls1: command not found
Pseudonimele nu sunt extinse atunci când shell-ul nu este interactiv, cu excepția cazului în care expand_aliases shell opțiune este setată folosind shopt., Poate fi testat prin adăugarea comenzii „alias” la scriptul bash simplu, iar execuția scriptului nu va da comanda alias, în timp ce pe shell-ul interactiv va furniza lista disponibilă de aliasing așa cum se arată în exemplul de mai sus.
Din pagina de 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).
Face alias muncă în bash script
următoarele abordări pot fi utilizate, pentru a face comanda alias muncă în bash script-uri., Variabilele pot fi utilizate în script-ul bash pentru a seta opțiunile preferate pentru orice comandă și aceste variabile pot fi menționate în secțiunea ulterioară a script-ul să fie suficientă nevoia de alias în interiorul script-uri.
Adăugați comanda ‘shopt -s expand_aliases la începutul script-ul pentru a extinde pseudonime și de a face comanda alias muncă în bash script.
# cat script.sh#!/bin/bash# Script to check the alias outputshopt -s expand_aliasesalias ls1='ls -lrt'ls1
# chmod +x script.sh# ./script.shtotal 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