有时我需要引用整个命令行以供将来评估.通常我这样做:
printf "%q " "$@"
这很短而且很甜,但输出看起来很糟糕.大多数时候这无关紧要,但有时我想向用户展示.例如,在执行命令的历史菜单中,允许重新执行条目.在这种情况下,我想以更易读的形式引用(更接近用户本身如果他负责引用的话).所以这:
search 'Wordreference (eng->spa)' utter
会比这更好:
search Wordreference\ \(eng-\>spa\) utter
为了获得第一个引用的表单,我可以迭代“$@”并为每个参数执行类似的操作:
[[ $arg == *\ * ]] && arg="'"${arg//\'/\'\\\'\'}"'"
这根本不难,但它涉及循环,条件字符串转换和每次迭代结果的连接.
我想知道是否有更多的“电池包含”命令来开箱即用这种转换.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。