
#!/bin/bash
(1)BAR = `awk ' { printf("%d", srand()%10) }'`
(2)BAR = `awk '{ print srand()%10 }'`
(3)BAR = `awk '{ print int(10.0*rand()) }'`
echo "$BAR"
上記のように変数にランダム関数を代入したいのですが、うまくいきません。
awk '{ print int(10*rand()) }'
だけでうってみると、
2
2
8
………
のように、延々と続いてしまい、一回で終わらないのがとても気になります。
awk ' function hoge(n){ return 1 + int(rand()*n) } { print hoge(10) } '
のように、関数をからませてもうまくいきません。
どうか、解説をお願いします。
なお、OSはLINUXのFedora10で、Tera Termを使ってクライアントから操作しています。
No.3ベストアンサー
- 回答日時:
> もしよければ、 [ ] はどういうときに使用するものか(if文のカッコなのかなど)、 $2つの意味をご教授願えないでしょうか。
$RANDOMは,乱数を返します。
$RANDOM % 10は,$RANDOMを10で割った余りを返す式です。
$[$RANDOM % 10]は,$RANDOMを10で割った余りを返す式を評価してその値を返します。式を$[と]で囲むわけですが,$((と))で囲むのが普通のシェルのやり方ですが,bashの場合には$[と]も使えるのです。
他には`expr $RANDOM % 10`というやり方もありますね。
間違っていたらご指摘ください。>識者の方
この回答への補足
$(($RANDOM % 10)) と `expr $RANDOM % 10` でともに正常に動くことを確認しました。
今回は大変お世話になりました。
No.2
- 回答日時:
その「わからない点」は bash のマニュアルを読めば解決するかも.
この回答への補足
RANDOMに関して、発見しました
>>RANDOM このパラメータが参照される度に、 0 から 32767 までのランダムな整数が生成されます。 RANDOM に値を代入すると、乱数の列を初期化できます。 RANDOM を unset すると、この変数の特殊な性質は無くなります。後で再び set しても元には戻りません。
ブランケット([])と前方の$は、説明文がかなり長くてみつけられませんでした。
man bash [ ] では、でてこないみたいですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルスクリプトで、空白(ス...
-
c言語 16進数の2進数への変換
-
16進の10進変換について
-
関数「exists」と「defined」の...
-
ヒアドキュメントで表示した、...
-
【至急!!!】python言語で本を見...
-
Pythonでプログラミング プログ...
-
tab区切り配列のtab数を検索
-
Application.ScreenUpdating = ...
-
セレクトメニューで2つの項目...
-
JSONで文字列が長い時
-
文字の横にプルダウンを表示さ...
-
テーブル内でドロップダウンメ...
-
formで特定のinputを送信しない...
-
STLのlistで重複するものだけを...
-
初回起動のみ判別したい
-
Perlにて、sendmailを使用する...
-
VB6で、長い時間かかる処理...
-
ACCESS テキストボックスを隙...
-
実行時エラー 3020の対策
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェルスクリプトで、空白(ス...
-
16進の10進変換について
-
I2C接続のLCDディスプレイを使う
-
Pythonでコンソールをクリアす...
-
pythonの*
-
c言語 16進数の2進数への変換
-
条件文の扱い方について
-
関数「exists」と「defined」の...
-
【至急!!!】python言語で本を見...
-
ファイルに書き込む
-
EUCで保存されたスクリプトにて...
-
Perl・正規表現が分かりません
-
改行
-
perlの型と8進数、10進数
-
ソートを利用して文字を昇順で...
-
配列 各項目を$n倍するプログ...
-
表という文字の扱いについて
-
シェルスクリプト+perl
-
ポーリングとHTMLデータのリロ...
-
awkの正規表現での最左最短マッ...
おすすめ情報