
Я пытаюсь сделать следующее:
ch='\x21'
line="\x21"
len=50
for i in `seq 1 $len`
do
line+="$ch"
done
Вместо 50 '!' (шестнадцатеричный код \x21) я получаю список из 50 '\x21'. Как это сделать в bash?
решение1
Согласно странице руководства, "Слова формы $'string'
обрабатываются особым образом". Таким образом, добавление $''
в смесь может помочь:
% bash
bash-3.2$ ch=$'\x21'; echo $ch$ch$ch
!!!
bash-3.2$