‚set alias‘ pro jakýkoli příkaz a příkaz alias bude fungovat dobře na interaktivním shellu, zatímco aliasing nefunguje uvnitř skriptu.

1. Interaktivní 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. Uvnitř skriptu

# 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

Aliasy nejsou rozšířil, když shell je interaktivní, pokud expand_aliases shell možností je nastavit pomocí shopt., Může být testován přidáním příkazu „alias“ do jednoduchého bash skriptu a spuštění skriptu nedá příkaz alias, zatímco na interaktivním shellu poskytne dostupný seznam aliasingu, jak je znázorněno na výše uvedeném příkladu.

manuálové stránce 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).

Vytváření alias práce v bash skript

následující postup lze použít, pro vytváření alias příkazu práce v bash skripty., Proměnné mohou být použity v bash skript, nastavit preferované volby pro příkaz, a tyto proměnné lze odkazovat v pozdější části skript stačit potřebu alias uvnitř skriptů.

přidejte příkaz ‚shopt-s expand_aliases‘ na začátku skriptu pro rozšíření aliasů a vytvoření příkazu alias v bash skriptu.

# 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