[shell] 一個printf 打印 8 進制碼的問題

問題的起因:

我想打印一類字符的8進制碼
例如我想打印   " 雙引號的
[liuhaifeng@tc 2]$  printf "%.3o\n" \"'"'
042

想打印 ! 號的
[liuhaifeng@tc 2]$  printf "%.3o\n" \"'!'
041

不明白後面參數的寫法 爲什麼非要  \"'!'
我換了方法就是不行
[liuhaifeng@tc 2]$  printf "%.3o\n" \"
000


[liuhaifeng@tc 2]$  printf "%.3o\n" \" '!'
000
-bash: printf: !: invalid number
000
 

現在是會應用不理解原理

解決:

首先要感謝 tone 上

tqhlyz 童鞋的提示
 
+o   If the leading character is a single or double quote, the value
               is the ASCII code of the next character.
 
如果主角是一種單引號或雙引號,該值 是下一個字符的ASCII碼。
 
[liuhaifeng@tc 2]$  printf "%.3o\n" \"'!'
041
這樣理解就可以明白了。。。哈哈
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章