2014-05-13 93 views
3

所以我試圖打印一個字符串作爲參數在終端中的程序。但是,我的命令似乎不匹配我需要的字符串。我需要打印的字符串是:bash printf + echo string

aaaaa$'\x14\x84\x04\x08' 

我的命令:

`printf 'a%.0s' {1..76}; echo "$'\x14\x84\x04\x08'"` 

我只是做一個愚蠢的錯誤?

+0

你能解釋一下嗎? – Helio

+0

在'echo'語句中使用'''...''時,雙引號禁止擴展。 – Helio

回答

0

¿像這樣的事情?

`printf "%76s"; echo "$'\x14\x84\x04\x08'"` 

如果你要打印的十六進制字符:

`printf "%76s"; echo $'\x14\x84\x04\x08'` 

建議使用美元符號和括號,而不是反引號:

$(printf "%76s"; echo "$'\x14\x84\x04\x08'") 

或者

$(printf "%76s"; echo $'\x14\x84\x04\x08') 
3

嘗試這樣,

~$ printf %76s |tr " " "a"; echo "$'\x14\x84\x04\x08'" 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa$'\x14\x84\x04\x08' 
+0

您也可以省略'echo':'printf'%76s \ x14 \ x84 \ x04 \ x08'| tr ...'。 – chepner