![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
#!/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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) awkの正規表現での最左最短マッチング 3 2022/07/01 00:10
- その他(プログラミング・Web制作) awkの BEGIN{RS=""} で空行を削除できるが、削除できる仕組みが分からない。 1 2023/05/02 14:14
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- Ruby パイソンプログラミング 2 2022/12/03 18:44
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- その他(プログラミング・Web制作) awkの$NR 2 2022/10/24 11:11
- Visual Basic(VBA) 順列をランダムに発生するプログラム 1 2022/11/16 12:16
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- Ruby プログラミング 3 2023/06/09 14:30
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<python>シンタックスエラーが...
-
favicon.ico
-
文字列をスカラー変数として認...
-
perでメールが送信出来ない場合...
-
チェックボックスのCGIへの値の...
-
c言語 16進数の2進数への変換
-
前ゼロ補填
-
pythonの*
-
perlのprint文がうまく動きません
-
シェルスクリプトで、空白(ス...
-
少数点以下の桁数について
-
int(input("○○"))の使い方
-
perlで以下の記述の意味につい...
-
m//gとm//gcの違い
-
awkの正規表現での最左最短マッ...
-
16進の10進変換について
-
【至急!!!】python言語で本を見...
-
Perlの例文でif($a==1&&$b==5&&...
-
Perlにおける<?phpinfo();?>の...
-
パイソンのクラスについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
16進の10進変換について
-
パイソンのクラスについて
-
Pythonでターミナルに文字を出...
-
文字のカラーとフォントの指定...
-
シェルスクリプトで、空白(ス...
-
I2C接続のLCDディスプレイを使う
-
【至急!!!】python言語で本を見...
-
数値かどうかの判定方法
-
awkの正規表現での最左最短マッ...
-
Pythonでコンソールをクリアす...
-
int(input("○○"))の使い方
-
UWSCのSELECT文の記述方法
-
数値英単語変換
-
pythonで演算子を変数に代入す...
-
C言語
-
switch文のエラーについて
-
10進数→2進数の出力について
-
pythonを使ったプログラミング...
-
c言語 16進数の2進数への変換
-
Pythonでプログラミング プログ...
おすすめ情報