domain="www.google.com"
echo -e "\e[1;34m"$domain"\e[0m"
我期望以綠色字母輸出www.google.com
。如何使用echo命令輸出顏色轉義序列
相反,我得到了
-e \e[1;34mwww.google.com\e[0m
domain="www.google.com"
echo -e "\e[1;34m"$domain"\e[0m"
我期望以綠色字母輸出www.google.com
。如何使用echo命令輸出顏色轉義序列
相反,我得到了
-e \e[1;34mwww.google.com\e[0m
根據使用可以有一個有效的環境或外殼,有一件事你也許可以做的是使用ANSI-C
報價:中
echo $'\e[1;34m'${domain}$'\e[0m'
詞$'string'形式被特別處理。字擴展爲 字符串,反斜槓轉義字符被替換爲 ANSI C標準中指定的字符。
https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html
@ user299709:另一種方法是使用轉義碼'\ 033'而不是'\ e'(例如'echo -e'\ 033 [1; 34m'「$ {domain}」'\ 033 [0m' ')......有些shell不使用'\ e',在這種情況下,您通常必須使用其他方法來轉義字符。 –
如果您用sh script.sh
腳本,你明確使用sh
作爲外殼,而不是一個在家當線。這是個壞消息,如果sh
不是bash
的鏈接。一個普通的sh
外殼可能不支持echo -e
。
鍵入./script.sh
在shebang行中使用解釋器。
雖然這是一個有效的答案,但我選擇了ILI的答案,因爲它直接讓我顯示顏色,而不必改變我運行腳本的方式。 – user299709
@ user299709如果使用'bash'特有的功能,不要使用'sh'運行腳本。 – chepner
儘管如此,你應該改變你運行腳本的方式。 –
你的外殼真的很棒嗎?我懷疑它不是。如果這是一個腳本,請將'#!/ bin/bash'放在頂部。 –
@JohnKugelman是的,shebang已經在頂端。 – user299709
你好嗎? '。/ script.sh'或'sh script.sh'?不要做後者。 –