私は乱数を生成するechoコマンドに変数を割り当てています。
例:n=$(echo $(( (RANDOM%6) +1))
.私はそこにいるはずです/etc/passwd
。
したがって、私の構文は次のようになります。
n=$(echo $(( (RANDOM%6) +1)) | grep "$n" /etc/passwd
ただし、ファイル全体の内容(/etc/passwd
)を出力として取得します。構文エラーがどこにあるかわかりません。
重要なことは、1行でのみ出力されることです。
答え1
2つのコマンドを分離して順次実行し、セミコロンの代わりにパイプを使用してIoを共有したことを確認しました。努力する
n=$(echo $(( (RANDOM%6) +1)) ; grep "$n" /etc/passwd
答え2
例:
n=$(echo $(( (RANDOM%6) +1))
.私はそこにいるはずです/etc/passwd
。
/etc/passwd
それでは、1から6までの任意の数字を含むすべての行を印刷しようとしますか?
そうではないでしょうか? (デフォルトのPOSIXシェルが実行するbash
orzsh
またはksh
for仮定)$RANDOM
いいえサポートする):
grep $((RANDOM%6+1)) /etc/passwd
他の場所で対応する乱数が必要な場合:
n=$((RANDOM%6+1))
grep $n /etc/passwd
私はこれがあなたが望むものだとは思わないが、問題を過度に単純化し、意図を失っている。