【发布时间】:2019-08-15 20:27:56
【问题描述】:
背景
tr 命令转换、删除或压缩标准输入中的字符。我正在尝试创建一个输出setenv 命令的cshell alias,以便路径中的每个文件或目录都显示在新行上。
换句话说,我想要setenv的这个示例输出:
PATH=/some/dir:/some/second/dir:/some/third/dir
PROFILES= file:///some/file/here.txt;file:///some/second/file.xml;file:///some/third/file/there.pl
变成这样:
PATH= /some/dir
/一些/秒/目录
/一些/第三个/目录
PROFILES= file:///some/file/here.txt
file:///some/second/file.xml
file:///some/third/file/there.pl
有效的相关别名
我已经创建了像上面一样输出各个环境变量的别名:
- 对于路径:
alias readablePath = 'echo "$PATH" | tr : '\'\\\n\'' ' - 对于配置文件:
alias readableProfiles= 'echo "$PROFILES" | tr \; 'echo "$PATH" | tr : '\'\\\n\'' '
尝试的别名不起作用
这些是我尝试过的返回 tr: no match 的别名。
alias readEnv 'echo "setenv" | tr [:\;] '\'\\\n\'' 'alias readEnv 'echo setenv | tr [:\;] '\'\\\n\'' 'alias readEnv 'echo setenv | tr [:\\;] '\'\\\n\'' 'alias readEnv 'echo setenv | tr [:;] '\'\\\n\'' '
这些是我尝试过的返回字符串 "setenv" 的别名。
alias readEnv 'echo setenv | tr "[:;]" '\'\\\n\'' 'alias readEnv 'echo "setenv" | tr "[:;]" '\'\\\n\'' '
问题
如何创建一个别名以成功获取setenv 的输出并在有“:”或“;”的位置插入换行符?
【问题讨论】: