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

Mic*_*eue 3 bash command-line

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

tr ':' '\n' <<< "$PATH"
Run Code Online (Sandbox Code Playgroud)

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

alias hpath='tr ':' '/n' <<< "$PATH"'
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 5

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

alias hpath='tr ":" "\n" <<< "$PATH"'
Run Code Online (Sandbox Code Playgroud)

或有引用类型的混合,围绕别名加上双引号,然后逃脱所有的特殊字符(\",\$,等):

alias hpath="tr ':' '\n' <<< \"\$PATH\""
Run Code Online (Sandbox Code Playgroud)

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

alias hpath='tr '\'':'\'' '\''\n'\'' <<< "$PATH"'
Run Code Online (Sandbox Code Playgroud)

呸!


anu*_*ava 5

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

alias paths="echo \"${PATH//:/$'\n'}\""
Run Code Online (Sandbox Code Playgroud)

或者更好地使用BASH函数来避免重复:

mypath() {
    echo "${PATH//:/$'\n'}"
}
Run Code Online (Sandbox Code Playgroud)