‘set-alias» for alle kommando-og alias-kommandoen vil fungere fint på interaktive shell, mens aliasing ikke fungerer inne i skriptet.
1. Interaktivt grensesnitt
# 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. Inne i skriptet
# 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
Aliaser er ikke utvidet, når skallet er ikke interaktiv, med mindre expand_aliases shell-alternativet er satt ved hjelp av shopt., Det kan bli testet ved å legge til kommandoen «alias» til enkle bash script og kjøring av skriptet vil ikke gi alias kommando, mens på den interaktive shell-det vil gi den tilgjengelige listen over aliasing som vist i eksempelet ovenfor.
Fra mannen siden i 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).
Gjør alias arbeid i bash-script
følgende tilnærming kan brukes for å lage alias kommando arbeid i bash-skript., Variabler kan brukes i bash-script for å angi det foretrukne valg for alle kommando-og disse variablene kan være referert i den senere delen av skriptet for å være tilstrekkelig behov for alias inne skript.
Legg til kommandoen ‘shopt -s expand_aliases’ i starten av skriptet for å utvide aliaser og gjøre alias kommando arbeid i bash-skript.
# 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