16進数を10進数に変換してASCIIに変換し、変数に保存しようとしています。次のコードを使用しています。
HEX=30
DEC=`printf "%d\n" 0x${HEX}`
echo "$DEC"
ASC=`printf \\$(printf '%03o' $DEC)`
echo "$ASC"
次のエラー構文エラーが発生します。
`(' unexpected
私はSolaris 10を使用しており、ksh
ASCII関数を使用して値を保存したくありません。関数を使用せずにこれを実行できるようにしたいです。
ベストアンサー1
$
誤って2回エスケープすると、代わりに置き換えられた内部printfの結果が表示されますprintf
(printf \$( ...
必要なものとします)。これを行うには、ステートメント全体を次のように単純化できます。ASC=$(printf '%03o' $DEC)