Bash命令打印人类可读的$ PATH输出不在OS X上的.bash_profile中作为别名工作

时间:2015-11-17 20:30:45

标签: bash command-line

此命令打印人类可读的$PATH输出。

tr ':' '\n' <<< "$PATH"

但是,当我对命令进行别名时它不起作用。我确信我需要逃避一些角色,只是不确定哪些角色或如何在bash中进行。

alias hpath='tr ':' '/n' <<< "$PATH"'

2 个答案:

答案 0 :(得分:5)

如果您在整个过程中使用双引号,则可以使用单引号括起所有内容:

alias hpath='tr ":" "\n" <<< "$PATH"'

或者混合使用引号类型,用双引号括起别名,然后转义所有特殊字符(\"\$等):

alias hpath="tr ':' '\n' <<< \"\$PATH\""

如果你很好奇,可以在外面使用单引号,但它真的很毛茸茸。没有办法在单引号中转义字符,因此在单引号中放入单引号要求您键入'\'' - '结束字符串,\'添加文字引号,{' 1}}启动另一个字符串。

alias hpath='tr '\'':'\'' '\''\n'\'' <<< "$PATH"'

呸!

答案 1 :(得分:5)

您可以使用 BASH的字符串替换来执行此操作,而不是调用外部命令tr

alias paths="echo \"${PATH//:/$'\n'}\""

或者更好地使用BASH函数来避免误解:

mypath() {
    echo "${PATH//:/$'\n'}"
}