我在Mac OSX上,尝试在.bashrc中放入一些基本别名(例如alias ll = 'ls -l'
)。我从.bash_profile中获取.bashrc,在启动时它可以识别我在.bashrc中具有的功能。但是,每次添加别名然后尝试启动它时,都会收到以下错误消息:
-bash: alias: ll: not found
-bash: alias: =: not found
-bash: alias: ls -l: not found
ll别名不起作用,但是以下函数声明的命令起作用:
#!/bin/bash
# prints the input
function print_my_input() {
echo 'Your input: ' $1
}
创建普通别名是否需要执行其他步骤?
答案 0 :(得分:1)
尝试以下方法:
alias ls='ls --color=auto'
alias ll='ls -l'
alias la='ls -la'
alias cd..='cd ..'
alias ..='cd ..'
在分配变量和别名时,Bash不允许在=
符号前后添加空格。
在旁注中,有两种方法来声明函数:
使用关键字function
表示函数声明
function myfunction { # function is a keyword
echo hello
}
或通过在函数名称后简单地加上花括号并省略关键字function
myfunction() { # () indicate a function definition
echo hello
}
同时使用这不是一个错误,而是多余的。此外, Charles Duffy 在评论中指出:
...不仅冗余,而且不必要地不可移植。 myfunction(){ 保证可以在所有POSIX shell上使用;函数myfunction {作品 在旧的ksh上(并且bash支持与之兼容); 将两者结合在一起在基线POSIX或旧的ksh上无效。