GNU/Linux >> Linux Esercitazione >  >> Linux

Come far funzionare il comando alias nello script bash o nel file bashrc

'imposta alias ' per qualsiasi comando e il comando alias funzioneranno bene sulla shell interattiva, mentre l'alias non funziona all'interno dello script.

1. Guscio interattivo

# alias ls1='ls -lrt'
# ls1
total 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. Dentro lo script

# cat script.sh
#!/bin/bash
# Script to check the alias output
alias ls1='ls -lrt'
ls1
# chmod +x script.sh
# ./script.sh 
./script.sh: line 3: ls1: command not found

Gli alias non vengono espansi quando la shell non è interattiva, a meno che non siano expand_alias l'opzione shell viene impostata utilizzando shopt . Può essere testato aggiungendo il comando "alias" al semplice script bash e l'esecuzione dello script non darà il comando alias, mentre sulla shell interattiva fornirà l'elenco disponibile di alias come mostrato nell'esempio sopra.

Dalla pagina man di 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).

Fare funzionare l'alias nello script bash

È possibile utilizzare il seguente approccio per far funzionare il comando alias negli script bash. Le variabili possono essere utilizzate nello script bash per impostare le opzioni preferite per qualsiasi comando e tali variabili possono essere riferite nella sezione successiva dello script per soddisfare la necessità di alias all'interno degli script.

Aggiungi il comando 'shopt -s expand_aliases' all'inizio dello script per espandere gli alias e far funzionare il comando alias nello script bash.

# cat script.sh
#!/bin/bash
# Script to check the alias output
shopt -s expand_aliases
alias ls1='ls -lrt'
ls1
# chmod +x script.sh
# ./script.sh
total 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


Linux
  1. Lo scopo di .bashrc e come funziona?

  2. Come ottenere il completamento di Bash per gli alias di comando?

  3. Il comando Rm nello script Bash non funziona con la variabile?

  4. Come disabilitare un alias in Bash per un singolo comando??

  5. Come creare uno script Bash per modificare il formato di una data in un file CSV?

Comando sorgente Bash

35 Esempi di script Bash

Come eseguire uno script Bash

Come evidenziare gli script Bash in Vim?

Come includere un file in uno script di shell bash

Come sfuggire ai comandi in un alias bashrc?