什麼是將版權符號©
和英鎊符號£
插入bash腳本的正確方法。Bash腳本中的版權和英鎊符號
我使用nano
作爲我的編輯器並運行Debian Squeeze。
如果我從窗口複製並粘貼符號,它可以正常工作,但它似乎粘貼了nano
無法顯示的隱藏字符,因此很難在shell腳本中編輯代碼。
因此,例如,我希望能夠做到這一點: -
text="£15.00"
text2="© John Doe"
什麼是將版權符號©
和英鎊符號£
插入bash腳本的正確方法。Bash腳本中的版權和英鎊符號
我使用nano
作爲我的編輯器並運行Debian Squeeze。
如果我從窗口複製並粘貼符號,它可以正常工作,但它似乎粘貼了nano
無法顯示的隱藏字符,因此很難在shell腳本中編輯代碼。
因此,例如,我希望能夠做到這一點: -
text="£15.00"
text2="© John Doe"
看來你使用的是不支持這些符號的語言環境(在過去的日子裏它也可能是一個糟糕的字體)。由於您使用的是UTF-8字符(Windows上的默認字符),因此您還需要在Linux上使用UTF-8感知環境。您可以檢查與locale
命令:
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
所以我的系統是好的,但你不得不默認,ASCII C語言環境設置。這些簡單的bash
變量,所以你可以單獨或export
他們覆蓋它們(通過設置LC_ALL
)。但是,這隻會影響當前的shell,所以您需要將它作爲shell初始化的一部分,以便每次自動工作。
這通常是通過/etc
配置文件腳本實現全球範圍內,但.bash_profile
或.bashrc
將工作一樣好。在您的Debian版本的語言環境存儲在/etc/default/locale
,你可以用locale -a
獲取可用選項列表,例如:
$ locale -a
C
en_US
en_US.iso88591
en_US.utf8
POSIX
sl_SI.utf8
選擇一個與UTF8後綴。如果您需要其他語言環境(例如日語),則可以使用localedef/locale-gen生成它們(附帶glibc
或作爲單獨的軟件包)。
更好的只是使用(C)的版權,你希望它是在其他語言環境總是可讀的,不違反辯護。
的顯示看起來像
text="1.00"
text2=" ohn Doe"
在我的測試終端
。
那麼'英鎊'呢? –
如果我想賣給無法顯示英鎊符號的地點,我會說(英鎊)。 – pizza
如果您在納米中輸入符號時遇到問題,請使用轉義語法。 您可以使用iconv
將其轉換爲對應於當前語言環境的輸出編碼:
text=$'\xa315.00'
text2=$'\xa9 John Doe'
iconv -f latin1 <<< $text
iconv -f latin1 <<< $text2
或UTF8相同:
text=$'\xc2\xa315.00'
text2=$'\xc2\xa9 John Doe'
iconv -f utf-8 <<< $text
iconv -f utf-8 <<< $text2
檢查您的語言環境和編碼設置,因爲這不是一個問題在我的機器上(完全UTF-8)。 – lynxlynxlynx
@lynxlynxlynx我該怎麼做? (Linux新手) –
'locale'必須在其中打印帶有utf-8的字符串。好吧,其他兼容編碼也可以,但這是最簡單的。 – lynxlynxlynx