run bash script não funciona alias comando no zsh

3

Eu uso o zsh in centos. E eu quero executar algum script de shell. Assim.

script.sh

#!/bin/sh

# something ..

source ./aliases-file.sh

aliases-file.sh

alias test=ls
alias test2=cat

Eu corro ./script.sh , o alias não foi aplicado à sessão atual. como posso trabalhar isso?

    
por Junsu Kim 16.08.2017 / 16:18

1 resposta

4

Quando você executa script.sh , ele é executado em uma subshell e seus aliases não se propagam para o shell de chamada (ou sessão atual conforme você se refere a ele). Você precisa criar o próprio script.sh: source script.sh . Isso fará com que os comandos sejam executados no seu shell atual e os aliases ficarão visíveis.

Nota: por razões de portabilidade, você deve considerar usar . em vez de source , pois o primeiro é o padrão POSIX, enquanto o segundo é um bashism .

    
por 16.08.2017 / 16:37