- ベストアンサー
シェルスクリプト(.sh)で、10進数文字を16進数へ変換したい
shスクリプトについて質問です。 10進数の0~15までが入った配列の値を、 10~15だけ、16進数のA~Fに変えたいです。 trコマンドで、"[:digit:]"っていうのがあったのですが、 全く使い方が見当たりませんでした^^; 何か一例いただけないでしょうか^^; 別にtrコマンドでなくても良いので、 どのようにすれば、shスクリプト内でやりたい事が できるか、教えていただけないでしょうかm(__)m
- みんなの回答 (6)
- 専門家の回答
関連するQ&A
- シェルでreadの文字数
Bシェルでreadを使用する際に取得可能な文字数の制限ってあるのでしょうか。 スクリプト: 下記test.logのset行のみ、4つ目のカラムを0に変更し、 その他の行はそのまま表示させたい。 # cat test.log set test01 0 2222 6 0.83322 set test02 1 3429 7 test002 set test03 0 9872 222 0.704073409098534720779 #!/bin/sh RENAM_F=/tmp/test2.log while read F1 F2 F3 F4 F5 do if [ $F1 = "add" ]; then echo "$F1 $F2 $F3 0 $F5" >>$RENAM_F else echo "$F1" >>$RENAM_F fi done < test.log ============ 上記スクリプトを実行すると、長い文字列は切れてしまいます。 例えば、最後の値の「0.704073409098534720779」は「0.704073409098534」までしか 表示されません。
- ベストアンサー
- Linux系OS
- シェルスクリプト
こんばんわ。最近Tru64でシェルスクリプトを書いています。そこで質問ですが、 前の実行コマンドが正常に終了したら次のコマンドが実行されるスクリプトはどのように書けばよいのでしょうか? if文で可能なのでしょうか? またkillコマンドをawkで kill psID OK?(y/n) と表示させyを押せばkillするようにするにはどのようにすればよいですか? 例のように表示させることはawkでできるのですがどうしたらy入力後killできるのかわかりません。 これもif文を使わなければだめなのでしょうか? よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- シェルスクリプトに関しての質問です
シェルスクリプトに関しての質問です result1からresult365まで365個のファイルがあります。 このファイルには UA 数値 (数値は任意の数)という行が存在する場合と存在しない場合があります。 ファイルの中から US 数値 の 数値の値を知る(UA 数値の行がなければ0とする)のが目的です。 しかし単にgrep UA result$i というコマンドをforを使って繰り返しただけでは、0の値がでてきません。 testコマンドと組み合わせてみましたが、UA 数値 という行が存在しない場合をうまく扱えずにだめでした。どうしたらいいでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- シェルスクリプトでの演算
シェルスクリプトで、多項式の演算の記述の仕方を教えてください。 (a+2)+(a*3)-4 のような式はどう記述すればいいのでしょうか。 初歩的な事がわかっていなくてすみません。 よろしくお願いします。 ちなみに.shです。
- 締切済み
- その他(プログラミング・開発)
- シェルスクリプト 引数の引渡しについて
こんにちは。現在シェルスクリプトを勉強中なのですがどうしてもわからないことがあり投稿させていただきました。 シェルスクリプトにて作成した引数(引数にスペースがある場合)を別のシェルスクリプトへ渡そうとしたときにうまく引き渡せなくて困っています。 詳しくは以下のスクリプト参照願います。 (1)引数作成のスクリプト _/_/_/_/_/_/_/_/_/_/_/_/ #!/bin/sh a="HELLO" b="\"WOW WOW\"" test.sh $a $b _/_/_/_/_/_/_/_/_/_/_/_/ (2)test.sh _/_/_/_/_/_/_/_/_/_/_/_/ #!/bin/sh echo $1 echo $2 echo $3 _/_/_/_/_/_/_/_/_/_/_/_/ これを実行すると $1=HELLO $2="WOW $3=WOW" となってしまいます。 これを $1=HELLO $2=WOW WOW $3=NULL(空欄) となるようにシェルスクリプトで作成することはできないのでしょうか? ご教授よろしくお願いします。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- Linuxシェルスクリプトを新しいコマンドにしたい
Linux初級者です。よろしくお願いします。 OSにFedora Core 10, シェルにtcshを使用しています。 よく使用するコマンドを、まとめて一括で実行するように、 新しいコマンドを作成したくて、次のようなことをしていたのですが (1)ホームディレクトリにmybinというディレクトリを作成してPATHを通す。 (2)newbin1という以下の内容のシェルスクリプトを作成して、~/mybinに置いておく。 ================================== #!/bin/tcsh -f date #実行コマンド例1 echo $PATH #実行コマンド例2 ================================== (3)chmodコマンドでファイルに実行権限を与える。 上記のような方法で、作成したシェルスクリプト(newbin1)を PATHの通ったディレクトリ(~/mybin)に置いて、 > newbin1 とコマンドを呼び出しても、 "newbin1: コマンドが見つかりません" というエラーになってしまいます。 > which newbin1 とすると、ちゃんとファイルのパスが表示されるのですが、 *********************************************************** 自分で作成したシェルスクリプト(newbin1)を、 新しいコマンドとして認識させるにはどのようにすればよいのでしょうか。 また、そもそもシェルスクリプトを新しいコマンドにすることが 不可能だったりするんでしょうか? ************************************************************ 一括で実行したいコマンドが多い場合に、aliasで割り当てるのが大変なので、 できればaliasコマンドは使わずにできる方法を探しています。 基本的な質問かもしれませんが、よろしくお願い致します。
- ベストアンサー
- Linux系OS
- Linuxのシェルスクリプトについて
最近Linuxの使い方を勉強し始めたのですが シェルスクリプトについてわからないところがあるので教えてください。 カレンダーを出力するスクリプト #/bin/sh n=$1 while [ $n -le $2 ]; do echo "year $n" cal $n n=`expr $n + $3` done というcal.shという名前のスクリプトを作りました。 ./cal.sh x y z (x,yは年数、zは何年飛ばしで表示するかを指定する引数です) と実行すると問題なくカレンダーが表示されるのですが x,y,zの値に不適切な入力値がある場合や、引数の数が2つより少ない場合 使い方を示すメッセージを出力してプログラムを終了するようにしたいです どうすればいいのかわかりません。 本当に困っています。 親切な方のご回答をお待ちしています。
- ベストアンサー
- Linux系OS
- シェルスクリプト内での四則演算
非常に基本的な事だと思うのですが、どうしても解決できないので質問させてください。 シェルスクリプトで四則演算をしたいです。expr を使って下記の通りに書きました。 ---------------- #!/bin/sh echo $1 echo $2 AA='expr $1 + $2' echo "$AA" ---------------- これを test.sh として保存し、 $ sh test.sh 1 2 と試してみると、出力が ---------------- 1 2 expr $1 + $2 ---------------- となります。最後の行は 3 になってもらいたいのですが。 ちなみに、普通にコマンドプロンプトで $ expr 1 + 2 とやれば 3 と出てきます。 環境は Ubuntu 9.04 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- シェルスクリプトの引数について
test.sh '*.c' といったコマンドを入力した時に、 シェルスクリプト内で引数$1を受け取ったときに$1='*.c'となるのではなく、 カレントディレクトリ内にある'*.c'の正規表現にマッチするファイルが入ってしまっています。 例)カレントディレクト内にaaa.cファイルbbb.cファイルといったファイルがある時は、 $1=aaa.c bbb.cとなっています。 '*.c'の正規表現自体をシェルスクリプト内で受け取る方法はないのでしょうか? シェルはbashを使用しています。
- ベストアンサー
- その他(プログラミング・開発)
- シェルスクリプト 結果表示
はじめまして。 シェルスクリプトを教えてください。 質問 ・nslookupで指定したipアドレスの 接続結果が成功なら0を表示 失敗なら1を表示 するというのがつくれません。お願いします なにかコマンドはコマンド結果に対して バックで表示されないcodeがあるらしいのですが。 ちなみにsolarisで #!/bin/sh で宜しくお願いします
- 締切済み
- Solaris系OS
補足
--------------------------- #!/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 ----- --------------------------- なんかやっちゃってますかね^^;