‘Indstil alias’ for enhver kommando, og alias-kommandoen fungerer fint på den interaktive shell, hvorimod aliasing ikke fungerer inde i scriptet.
1. Interaktive shell
# 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. Inde i scriptet
# 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 udvides, når tanken er ikke interaktive, medmindre expand_aliases shell-indstilling er indstillet ved hjælp af shopt., Det kan testes ved at tilføje kommandoen “alias” til simpelt bash-script, og scriptudførelsen giver ikke kommandoen alias, hvorimod det på den interaktive skal giver den tilgængelige liste over aliasing som vist i ovenstående eksempel.
Fra den mand, side 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).
Gør alias arbejde i bash-script
følgende fremgangsmåde kan anvendes, for at gøre alias kommando arbejde i bash scripts., Variabler kan bruges i bash-scriptet til at indstille de foretrukne indstillinger for enhver kommando, og disse variabler kan henvises i det senere afsnit af script for at være tilstrækkeligt behovet for alias inde i scripts.
Tilføj kommandoen ‘shopt-s e .pand_aliases’ i starten af scriptet for at udvide aliaser og få alias-kommandoen til at fungere i bash-scriptet.
# 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