$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
我想知道如何将别名从 shell 传递到脚本?谢谢。
$ cat myscript
#!/bin/bash
alias
$ ./myscript
$
答案1
在启动脚本之前会有意清除别名,因为别名可能会导致脚本行为异常。
理论上,您可以在脚本内定义别名,但如果这样的脚本是通过
. scriptname
不允许在脚本内部使用这些新别名,因为点脚本在运行之前已被完全解析,并且为了使别名有效,解析器需要知道它,并且为了让解析器知道别名,您首先需要运行alias
shell 内置命令。
所以不要在脚本中使用别名。它们可以让输入变得更容易,但这不适用于编写一次但运行多次的脚本。