ループを使用してコマンドライン引数を生成する

ジョン・ミーアン

forループを使用してコマンドライン引数を実行しようとしていますが、これを試したことがなく、問題が発生しています。

次のコマンドを使用しています。

for((a=1; a<20; a++)); 
do 
    ./a.out -N 10000 -D .25*a -E 0.7788007831;
done

cのgetopt関数を使用して値を読み込みます。Dのさまざまな値(出力ではデルタと呼ばれます)を試してみたいと思います。ただし、このコマンドを実行すると、次のようになります。

Acceptance rate is: 0.928400
Estimate is:        0.758704
Error is :          0.020097
Delta used:         0.250000

Acceptance rate is: 0.928400
Estimate is:        0.758704
Error is :          0.020097
Delta used:         0.250000

Acceptance rate is: 0.928400
Estimate is:        0.758704
Error is :          0.020097
Delta used:         0.250000

Acceptance rate is: 0.928400
Estimate is:        0.758704 
Error is :          0.020097
Delta used:         0.250000

...

Acceptance rate is: 0.928400
Estimate is:        0.758704
Error is :          0.020097
Delta used:         0.250000

何が問題なのかわかりませんが。

ilkkachu

1つは、シェル変数を参照する場合は、$foo表記を使用する必要がありますaは文字「a」(同じよう10000に5桁)ですが$a、変数にその時点で含まれているものに展開されます。

2つ目は、シェルで算術演算を行うための算術展開の構文$(( expression ))であるため、25倍$(( 25 * $a ))の値を取得するように記述できますa(基数10の数値として)。

ここで直面する問題は、Bash(およびPOSIXシェル)が整数に対してしか算術演算を実行できないため、を乗算して0.25も機能しないことです。

zshでは、浮動小数点演算が機能するため、次のように実行できます。

for ((a=1; a<20; a++)); do 
    echo $((.25 * $a))
done

ただし、Bashまたは標準シェルでは、計算を行うために外部プログラムを使用する必要があります。

for ((a=1; a<20; a++)); do 
    echo $( echo ".25 * $a" | bc -l )
done

またはあなたのコマンドで:

for ((a=1; a<20; a++)); do 
    ./a.out -N 10000 -D $( echo ".25 * $a" | bc -l ) -E 0.7788007831;
done

もちろん、あなたがしているが、実行中のプログラムは、乗算を行うことができますし、あなただけの文字列を渡したい場合は.25*1.25*2あなたが使用したい、それになど

... -D ".25*$a"

それ以外の場合はファイル名の一致(glob)*と見なされるため、引用符で囲みます。(実際には、通常、変数展開またはコマンド置換を使用するほとんどの場所を引用符で囲みますが、その上で「二重引用符が必要なのはいつですか?」参照してください。)

ここに示すシェルで浮動小数点計算を行うには、いくつかの方法があります。bashまたは他の言語/フレームワークで整数と浮動小数点の計算を行う方法は?

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

コマンドライン引数を使用してファイルをプログラムに渡す

分類Dev

コマンドライン引数を使用してプロパティファイルをロードする-Java

分類Dev

コマンドライン引数を使用しようとすると、lsコマンドをforループに渡すと中断します

分類Dev

コマンドライン引数を使用してEclipseを実行する

分類Dev

コマンドライン引数からgetcharを使用してプログラムをエンコードし、putcharを送信してデコードします

分類Dev

コマンドライン引数を使用してサーバーで使用するためにReactJSをコンパイルする方法は?

分類Dev

テキストファイルを使用してコマンドライン引数を取得する方法

分類Dev

WinSCPコマンドライン引数を使用してログファイルを上書きする

分類Dev

bashでコマンドライン引数をインターセプトして削除する方法

分類Dev

コマンドライン引数を使用してRPM仕様ファイルをオーバーライドする方法はありますか?

分類Dev

コマンドライン引数からJSONを生成する

分類Dev

AWK-コマンドライン引数を使用してフィルタリングする方法($ 1)

分類Dev

perl でコマンドライン引数をファイル名として使用する

分類Dev

コマンドライン引数を使用してPSEXECを介してHTAアプリケーションを実行する

分類Dev

コマンドライン引数にスクリプトでループを使用する

分類Dev

PostgreSQLを使用してSQRレポートをコンパイルするためのコマンドライン引数は何ですか?

分類Dev

AppleScriptで引数を指定してコマンドラインツールを実行する

分類Dev

EC2でコマンドライン引数を使用してプログラムをリモートで実行する方法(Javaプログラム)

分類Dev

コマンドラインでforループを使用する-変数が機能していませんか?

分類Dev

argparseを使用してコマンドライン引数を出力しますか?

分類Dev

MacOSでコマンドライン引数を使用してアプリケーションを実行するにはどうすればよいですか

分類Dev

Javaコマンドライン引数。乗算の引数として*を使用する

分類Dev

ループ内でawkコマンドを使用して、いくつかの間引きされたデータファイルを生成する方法

分類Dev

さまざまな引数を使用して関数テンプレートをインスタンス化するコードを生成します

分類Dev

可能な限り最大の引数を使用してコマンドを実行するループ

分類Dev

jq:group_byステートメントのコマンドライン引数としてネストされたフィールド名を使用する

分類Dev

コマンドラインでgooglechromeを使用してローカルファイルのURLに引数を追加する

分類Dev

Visual Studiodevolopersコマンドプロンプトを使用して複数のソースファイルプログラムc ++をコンパイルする

分類Dev

`argparse`を使用してコマンドラインとコードの両方から引数を渡す方法は?

Related 関連記事

  1. 1

    コマンドライン引数を使用してファイルをプログラムに渡す

  2. 2

    コマンドライン引数を使用してプロパティファイルをロードする-Java

  3. 3

    コマンドライン引数を使用しようとすると、lsコマンドをforループに渡すと中断します

  4. 4

    コマンドライン引数を使用してEclipseを実行する

  5. 5

    コマンドライン引数からgetcharを使用してプログラムをエンコードし、putcharを送信してデコードします

  6. 6

    コマンドライン引数を使用してサーバーで使用するためにReactJSをコンパイルする方法は?

  7. 7

    テキストファイルを使用してコマンドライン引数を取得する方法

  8. 8

    WinSCPコマンドライン引数を使用してログファイルを上書きする

  9. 9

    bashでコマンドライン引数をインターセプトして削除する方法

  10. 10

    コマンドライン引数を使用してRPM仕様ファイルをオーバーライドする方法はありますか?

  11. 11

    コマンドライン引数からJSONを生成する

  12. 12

    AWK-コマンドライン引数を使用してフィルタリングする方法($ 1)

  13. 13

    perl でコマンドライン引数をファイル名として使用する

  14. 14

    コマンドライン引数を使用してPSEXECを介してHTAアプリケーションを実行する

  15. 15

    コマンドライン引数にスクリプトでループを使用する

  16. 16

    PostgreSQLを使用してSQRレポートをコンパイルするためのコマンドライン引数は何ですか?

  17. 17

    AppleScriptで引数を指定してコマンドラインツールを実行する

  18. 18

    EC2でコマンドライン引数を使用してプログラムをリモートで実行する方法(Javaプログラム)

  19. 19

    コマンドラインでforループを使用する-変数が機能していませんか?

  20. 20

    argparseを使用してコマンドライン引数を出力しますか?

  21. 21

    MacOSでコマンドライン引数を使用してアプリケーションを実行するにはどうすればよいですか

  22. 22

    Javaコマンドライン引数。乗算の引数として*を使用する

  23. 23

    ループ内でawkコマンドを使用して、いくつかの間引きされたデータファイルを生成する方法

  24. 24

    さまざまな引数を使用して関数テンプレートをインスタンス化するコードを生成します

  25. 25

    可能な限り最大の引数を使用してコマンドを実行するループ

  26. 26

    jq:group_byステートメントのコマンドライン引数としてネストされたフィールド名を使用する

  27. 27

    コマンドラインでgooglechromeを使用してローカルファイルのURLに引数を追加する

  28. 28

    Visual Studiodevolopersコマンドプロンプトを使用して複数のソースファイルプログラムc ++をコンパイルする

  29. 29

    `argparse`を使用してコマンドラインとコードの両方から引数を渡す方法は?

ホットタグ

アーカイブ