我有这个在我的.bashrc中: LIGHTGREEN="\[\033[1;32m\]" LIGHTRED="\[\033[1;31m\]" WHITE="\[\033[0;37m\]" RESET="\[\033[0;00m\]" function error_test { if [[ $? = "0" ]]; then echo -e "$LIGHTGREEN" else echo -e "$LIGHTRED" fi } PS1="\u\$(error_test)@\w$RESET \$ " 这似乎使shell输出完全一样: username\[\]@~/ 在我的提示中显示了颜色代码的转义[和]。 如果我从它的工作颜色周围删除转义码,但然后bash线包装大大失败。 注意如果PS1="LIGHTGREEN – whatever – $RESET"它工作,并且[和]不逃脱。 不过,我想在一个函数里面这样做,这似乎是个问题。 我找不到任何好的文档。 man echo甚至没有列出-e选项。 Bash好像有很多无证的手工知识。
这可能很容易,但networking上没有答案。 我想通过批量回显一个XML行到一个文件,但它误解redirect的XML结束标记“>”。 线路如下: echo <?xml version="1.0" encoding="utf-8" ?> > myfile.xml 有没有什么办法来提示批处理parsing器不解释一个特殊的string? 我用双引号,但它也写入文件! echo后的文件应该是这样的: <?xml version="1.0" encoding="utf-8" ?>
我在bat文件中closures了回声。 @echo off 然后我做这样的事情 … echo %INSTALL_PATH% if exist %INSTALL_PATH%( echo 222 … ) 我得到: 该系统找不到指定的path。 这两个回声之间的消息。 这个消息的原因是什么?为什么消息忽略回显?
如何使用bash脚本回显一个或多个制表符? 当我运行这个代码 res=' 'x # res = "\t\tx" echo '['$res']' # expect [\t\tx] 我明白了 res=[ x] # that is [<space>x]
我正在尝试使用echo命令在terminal中打印文本。 我想用红色打印文本。 我该怎么做?