アプリ版:「スタンプのみでお礼する」機能のリリースについて

shスクリプトについて質問です。

10進数の0~15までが入った配列の値を、
10~15だけ、16進数のA~Fに変えたいです。

trコマンドで、"[:digit:]"っていうのがあったのですが、
全く使い方が見当たりませんでした^^;
何か一例いただけないでしょうか^^;

別にtrコマンドでなくても良いので、
どのようにすれば、shスクリプト内でやりたい事が
できるか、教えていただけないでしょうかm(__)m

A 回答 (6件)

ご質問の主旨を誤解していました。


下記でできます。

-------------------------------------
i=13
i=$(printf "%x" $i)
echo $i

この回答への補足

---------------------------
#!/bin/sh

i=13
i=`printf '%x' $i`
echo $i

で、実行すると、

---
: command not found
: invalid number 4: printf: 13
---

---------------------------
#!/bin/sh
i=13
i=$(printf "%x" $i)
echo $i

で、実行すると、

-----
: command not found
: command not found
: invalid number 5: printf: 13
0
-----

---------------------------

なんかやっちゃってますかね^^;

補足日時:2010/03/27 21:23
    • good
    • 0

>: command not found


>: invalid number 4: printf: 13

改行コードがCRLF(Windows用)になってますね。Windowsで作成したファイルをバイナリモードでftpしたのですか?
ファイルはLinux上でゼロから作るか、ftpするならテキストモードで。
    • good
    • 0
この回答へのお礼

ありがとうございます。
FTPでやってるんですが何故だろう。
一回、Linux上でファイル作ってみます。

お礼日時:2010/04/26 09:59

> command not found



printf って、bashとかで独自に追加した組込みコマンドだから、標準のshだと使えないことがあると思います。

中にはshの実体がbash等になっていて、printfが使えることもありますが。
互換性を考えたら使わない方がいいでしょう。
    • good
    • 0
この回答へのお礼

printf自体は使えない場合があるのですか。
互換性がないものは確かに微妙ですね。

お礼日時:2010/04/26 10:01

ん~,


i=`printf '%x' $i`
でいいような気もする.

この回答への補足

---------------------------
#!/bin/sh

i=13
i=`printf '%x' $i`
echo $i

で、実行すると、

---
: command not found
: invalid number 4: printf: 13
---

---------------------------
#!/bin/sh
i=13
i=$(printf "%x" $i)
echo $i

で、実行すると、

-----
: command not found
: command not found
: invalid number 5: printf: 13
0
-----

---------------------------

なんかやっちゃってますかね^^;

補足日時:2010/03/27 21:22
    • good
    • 0

表示しただけでは、変数に入らないのは当り前の話ですね


表示内容を変数に代入しなければなりません
例えば、

i=`echo $i | awk '{printf("%x", $1)}'`
    • good
    • 1

awkを使って下記のようにしてみてはいかがでしょう。


「数字」の部分に10進数値を入れてください。

echo 数字 | awk '{printf("%x\n", $1)}'
    • good
    • 0
この回答へのお礼

ありがとうございます。
変換は出来たのですが、
i=13
echo $i | awk '{printf("%x\n", $1)}'
echo $i

としたら、
d
13
と表示されました^^;
この$iを、dに書き換える方法はありますでしょうか?

お礼日時:2010/03/27 19:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!