web-dev-qa-db-ja.com

(スクリプトではなく)インタラクティブなCLIプログラムをbashスクリプトで自動的に応答する方法は?

私はこれをグーグルで調べましたが、見つけることができるほとんどすべてはbashスクリプトに答えることであり、これは私にとってはうまくいきません。私が見つけた答えはそうするように言われました:

echo "yes" | ./script

または

./script <<< yes

またはそのようなもの。私にはうまくいきませんでした。私がしたいのは、スクリプトではなく実行可能プログラムに自動応答することだからです。具体的には、partedに自動応答します。ここに

parted -a optimal /dev/sda mklabel msdos
Warning: The existing disk label on /dev/sda will be destroyed and
all data on this disk will be lost. Do you want to continue?
Yes/No? _

しようとする

echo "yes" | parted -a optimal /dev/sda mklabel msdos

そして

parted -a optimal /dev/sda mklabel msdos <<< yes

両方の方法が機能しませんでした。それらはyesからpartedプロンプトに答えませんでした。

それでは、bashスクリプトを使用せずにpartedプロンプトに自動的に答えるにはどうすればよいですか?

5
Mas Bagol

partedを使用すると、-sオプションを追加できます。

parted -a optimal -s /dev/sda mklabel msdos

manの信頼partedページから

 [...] 
 -s、 - 脚本
はユーザーの介入を求めません
 [...] 
10
kos