它似乎是一种比较运算符,但是它究竟在做什么呢?以下代码(取自
https://github.com/lvv/git-prompt/blob/master/git-prompt.sh#L154)?
if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]]; then elipses_marker="…" else elipses_marker="..." fi
我正在尝试让git-prompt在MinGW下工作,而MinGW提供的shell似乎不支持这个运算符:
conditional binary operator expected Syntax error near `=~' ` if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]]; then'
在这个特定的情况下,我可以用elipses_marker =“…”替换整个块(因为我知道我的终端支持unicode),但是这究竟是什么呢?
它是内置[[命令,执行正则表达式匹配]的仅限bash的补充.由于它不必是完整字符串的精确匹配,因此符号被挥动,以指示“不精确”匹配.
在这种情况下,如果$LC_CTYPE包含字符串“UTF”.
更便携版:
if test `echo $LC_CTYPE | grep -c UTF` -ne 0 -a "$TERM" != "linux" then ... else ... fi
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。