2022年7月17日の日記の2番目の記事へのコメント

シェルスクリプト

下記のようなシェルスクリプト、明示的にbashで動かすと期待通り普通に 0x41 0x42 がtest.binファイルに書き出されるのに、/bin/sh で動かすようにすると "\x41\x42"という文字列がそのままファイルに書き出されてしまう問題に遭遇。

#!/bin/sh
HEX='\x41\x42'
printf $HEX > test.bin

かなり悩んだんですが、原因はUbuntuの/bin/shの実体が、bashじゃなくてdashだからのようです。dashはprintfコマンドを内部で処理できるようですが、これが \xhh 形式の表現に非対応ということっぽい。ていうか、dashって何なんすかね。初めて知りましたよ・・・。なんかもう、Linux前提のスクリプトだし、printfは /usr/bin/printf みたいにフルパスで指定するか、あるいは1行目を #!/bin/bash とした方が安心かもなぁ・・・。

お名前:  メールアドレス(省略可):
メールアドレスも表示されます
ここに名前その他を書いてはいけません: ここにメールアドレスその他を書いてはいけません:

2022年7月17日の日記の2番目の記事へのコメント

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2022年7月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ