awk はコマンドの結果を変数に割り当てます。

awk はコマンドの結果を変数に割り当てます。

私はawkスクリプトを作成しており、変数に割り当てられたコマンドの結果を取得しようとしています。私はこれが可能であると確信していますが(コマンドの代替?)成功しませんでした。

BEGIN {
    records_count = read_file_into_array("/usr/share/dict/web2", File)
    srand()
    printf "A random word: %s\n\n",File[int(rand()*records_count)]
    first=($(awk (File[int(rand()*records_count)]) ))
    print "New password: ",first
exit
}

スクリプトは「任意の単語」を正しく印刷しますが、「新しいパスワード」については何も得られません。ここで誰かが状況を明らかにできることを願っています。とても感謝しています。

ベストアンサー1

4つ:

最初:電話するたびにrand()別の番号が届きます。したがって、から抽出された単語printfはから抽出された単語とは異なります。first=

第二:最初のことが真でない場合でも、回避できる場合は、関数を何度も呼び出さないことをお勧めします。

第三:ライン

first=($(awk (File[int(rand()*records_count)]) ))

awkスクリプトではなくシェルスクリプトの1行のように見えます。負けると次のよう($(awk () ))なりますawk

第四:終了コマンドがありますが、awkこの場合は必要ありません。

これらすべてを適用すると、次のようになります。

BEGIN {
    records_count = read_file_into_array("/usr/share/dict/web2", File)
    srand()
    first=File[int(rand()*records_count)]
    printf "A random word: %s\n\n",first
    print "New password: ",first
}

これは最初の2つの値を印刷するので、必要ではないかもしれません。

おすすめ記事