此命令打印人类可读的$PATH
输出。
tr ':' '\n' <<< "$PATH"
但是,当我对命令进行别名时它不起作用。我确信我需要逃避一些角色,只是不确定哪些角色或如何在bash中进行。
alias hpath='tr ':' '/n' <<< "$PATH"'
答案 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'}"
}