Bashスクリプト:16進数

Bashスクリプト:16進数

私は次のことをしようとしています:

ch='\x21'
line="\x21"
len=50
for i in `seq 1 $len`
do
    line+="$ch"
done

50 "!" (16 進コード \x21) ではなく、50 '\x21' のリストが表示されます。 Bashでどうすればいいですか?

答え1

マニュアルページによると、「形式の単語は$'string'特別に扱われます」とされています。したがって、$''ミックスに追加するのに役立ちます。

% bash
bash-3.2$ ch=$'\x21'; echo $ch$ch$ch
!!!
bash-3.2$ 

関連情報