
#!/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ランキング
-
16進の10進変換について
-
foreach (1..4){ 英文字$_→$新...
-
【至急!!!】python言語で本を見...
-
Pythonでコンソールをクリアす...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
CGI(Perl)で、Net::FTPを使いたい
-
セレクトメニューで2つの項目...
-
文字の横にプルダウンを表示さ...
-
FindFirst を複数条件で検索
-
子windowsからsubmit()後にclos...
-
<SELECT>タグの折り返し
-
体重が3kg増える/減る の英語...
-
処理終了後、他のページへジャ...
-
UWSC SLCTBOXもしくはSELECTに...
-
Perlでの数字の12桁化
-
メモリをアドレスを直接指定し...
-
UWSC:ポップアップウインドウ...
-
結果を得て自動的にページ移動...
-
ACCESS テキストボックスを隙...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェルスクリプトで、空白(ス...
-
16進の10進変換について
-
【至急!!!】python言語で本を見...
-
Pythonでコンソールをクリアす...
-
c言語 16進数の2進数への変換
-
関数「exists」と「defined」の...
-
Perlで、経過をLoading画面みた...
-
I2C接続のLCDディスプレイを使う
-
文字のカラーとフォントの指定...
-
[Ruby] irbにおける文字化け
-
UWSCのSELECT文の記述方法
-
switch文のエラーについて
-
python print文のエラー
-
awkの正規表現での最左最短マッ...
-
ソケットでのデータ送受信につ...
-
Adafruit LIS3DH 3軸加速度セン...
-
pythonの*
-
qq!!の意味を教えてください。
-
$(ドル)の記号を表示したいの...
-
Pythonでプログラミング プログ...
おすすめ情報