在.bashrc中使用“ alias ll ='ls -l'”表示“ alias:=:找不到”,别名未定义

时间:2018-12-23 03:00:12

标签: bash alias

我在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
}

创建普通别名是否需要执行其他步骤?

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上无效。