‘alias instellen’ voor elk commando en het alias commando zal prima werken op de interactieve shell, terwijl aliasing niet werkt in het script.

1. Interactieve 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. In het script worden

# 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

aliassen niet uitgebreid wanneer de shell niet interactief is, tenzij de optie expand_aliases shell is ingesteld met shopt., Het kan worden getest door het commando “alias” toe te voegen aan simple bash script en de uitvoering van het script zal niet het alias commando geven, terwijl het op de interactieve shell de beschikbare lijst van aliasing zal bieden zoals getoond in het bovenstaande voorbeeld.

vanaf de manpage van 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).

alias laten werken in bash script

de volgende aanpak kan worden gebruikt, voor het maken van alias Commando werken in bash scripts., Variabelen kunnen in het bash script worden gebruikt om de voorkeursopties voor elk commando in te stellen en deze variabelen kunnen in de latere sectie van script worden doorverwezen om te voldoen aan de behoefte aan alias binnen scripts.

voeg het commando ‘shopt-s expand_aliases’ toe aan het begin van het script om aliassen uit te breiden en het alias commando te laten werken in het 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