执行 shell 脚本时使用 echo 选项
Use echo options when execution shell script
在 mac OSX,我有这个脚本:
#!/usr/local/bin/bash
echo -e "\e[41mError: Some error.\e[0m"
当我在控制台中 运行 echo -e ...
时,它会打印彩色文本“错误:一些错误。”
当作为脚本 sh myscript.sh
执行时,它会随意打印标志和转义字符:-e "\e[41mError: Some error.\e[0m"
.
当我将脚本位置添加到 ~/.bash_profile
并以 myscript.sh
执行它时,它确实有效。但我需要能够在不将其添加到我的 bash 配置文件的情况下执行它。
编辑:使用 printf 有效:printf "\e[41mError: Some error.\e[0m\n"
.
当你 运行 shell 和 sh
它 运行 处于 posix 兼容模式(即像 bourne shell 那样)
bash 是此 shell 的继承者,它添加的功能之一是 -e 切换到 echo
在 posix shell 中您不需要 -e,无论如何都会评估转义符
在 bash 中你这样做,所以如果你想 运行 bash 明确地这样做
在 mac OSX,我有这个脚本:
#!/usr/local/bin/bash
echo -e "\e[41mError: Some error.\e[0m"
当我在控制台中 运行 echo -e ...
时,它会打印彩色文本“错误:一些错误。”
当作为脚本 sh myscript.sh
执行时,它会随意打印标志和转义字符:-e "\e[41mError: Some error.\e[0m"
.
当我将脚本位置添加到 ~/.bash_profile
并以 myscript.sh
执行它时,它确实有效。但我需要能够在不将其添加到我的 bash 配置文件的情况下执行它。
编辑:使用 printf 有效:printf "\e[41mError: Some error.\e[0m\n"
.
当你 运行 shell 和 sh
它 运行 处于 posix 兼容模式(即像 bourne shell 那样)
bash 是此 shell 的继承者,它添加的功能之一是 -e 切换到 echo
在 posix shell 中您不需要 -e,无论如何都会评估转义符
在 bash 中你这样做,所以如果你想 运行 bash 明确地这样做