-2

私の質問は、非インタラクティブにインタラクティブなプログラムに引数を渡す次の拡張機能です。

リストからオプションを選択するように求めるスクリプトを使用しています。

1 - ABC
2 - CDE
3 - EFG

文字に基づいて選択する必要があるオプションはわかっていますが、スクリプトは数字を提供することを期待しています。

非インタラクティブな方法でそれを行う方法はありますか? 指定された文字に基づいて数字を見つける「パラメーター」を渡すことを意味します。

[編集1]

私の説明はあまり明確ではないので、テスト ケースを追加します。スクリプトがあります: test.sh. これはインタラクティブなスクリプトなので、実行すると質問が表示されます。

./test.sh
Are you sure you want to run it? (y/n): y
Please choose option:
1 - ABC
2 - CDE
3 - EFG
1

私が使用している非対話的な方法でこのスクリプトを実行するには:

echo "y
1" | test.sh

問題は、スクリプトを実行しているときに、選択したいオプションに割り当てられている番号がわからないことです。

4

2 に答える 2

0

あなたのユースケースは明確ではありませんが、探しているものがgrepとsedで実装できると推測できます。

例 :

cat choices.txt
1 - ABC
2 - CDE
3 - EFG

choices.txt で EFG を検索し、sed を使用して数値を取得します (数字のグループを見つけて、このグループのみを出力します)。

cat choices.txt | grep EFG | sed 's/^\([0-9]*\).*/\1/'
3
于 2017-11-08T10:25:34.563 に答える