Linux 如何使用命令行工具按照指定分隔符将管道输出分割一行一个

命令 echo $PATH 的输出并不方便观察,想按照 : 分割为一行一个。
如何实现呢?
尝试过 cutawk 等命令都无法优雅的解决这个简单的需求。

╭─bot@3c06302cdebd ~/Desktop
╰─➤  echo $PATH
/opt/homebrew/opt/python@3.8/bin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Library/Apple/usr/bin:/Applications/Wireshark.app/Contents/MacOS:/Users/bot/.cargo/bin:/usr/local/mysql/bin

子问题:如何一行一行输出环境变量值?

阅读 2.7k
2 个回答

全局将 : 替换为 \n 即可。

echo -e ${PATH//:/\\n}

你可以自己简单的编写一个脚本啊,比如echoPath.sh

#!/bin/bash
ALIST=$*
OLD_IFS=$IFS
IFS=':'
for AL in ${ALIST};do
        echo ${AL}
done
IFS=$OLD_IFS

不过这个可能不能很好处理PATH中包含空格字符情况

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题