Vla*_*mir 12 bash alias bashrc
我有一个 .bashrc 文件,我想设置它以便它从 .aliases 文件读取别名并设置它们。
目前我有:
# User specific aliases and functions
while read alias_line
do
echo `alias ${alias_line}`
done < .aliases
Run Code Online (Sandbox Code Playgroud)
但是登录后我得到:
-bash:别名:-fu:未找到 -bash:别名:$USER”:未找到
-bash:别名:-lart”:未找到
.aliases 文件是这样的:
psu="ps -fu $USER" ll="ls -lart"
pico='nano'
use*_*686 16
当您使用 时alias ${alias_line}
,变量在空格处被分解,忽略引用规则。
有两种方法可以修复它:
从别名文件中删除所有引用:
ll=ls -lart
psu=ps -fu $USER
Run Code Online (Sandbox Code Playgroud)
并将变量本身放在引号中:
alias "$alias_line"
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为在 bash 中,ll="ls -lart"
并且"ll=ls -lart"
完全等效。
或者(这是一种更好且更常见的方法),拥有一个包含alias
命令的文件,并使用.
内置(又名source
)来导入它。
alias pico='nano'
alias psu='ps x'
alias ll='ls -lart'
Run Code Online (Sandbox Code Playgroud)
然后在你的~/.bashrc
:
. ~/.aliases
Run Code Online (Sandbox Code Playgroud)第二种方法更好,因为它不限制您使用别名,而且还允许定义更强大的函数。
归档时间: |
|
查看次数: |
11891 次 |
最近记录: |