スクリプトのGNU分割サイズ変更部分

スクリプトのGNU分割サイズ変更部分

yesGNU partedがユーザー入力を待たないように、このコマンドを使用したいと思います。

root@195-xxx-xxx-xxx:/proc# parted /dev/sda unit B resizepart 2 1166016512B
 Warning: Shrinking a partition can cause data loss, are you sure you want 
 to continue?
Yes/No? y                                                                 
Information: You may need to update /etc/fstab.
root@195-xxx-xxx-xxx:/proc# echo $?
0

ただし、yesここでは以下を使用して動作しません。

root@195-xxx-xxx-xxx:/proc# yes | parted /dev/sda unit B resizepart 2 166016512B
 Warning: Shrinking a partition can cause data loss, are you sure you 
 want to continue?
root@195-xxx-xxx-xxx:/proc# echo $?
1

編集する:

この--scriptオプションも効果がありません。

root@195-xxx-xxx-xxx:/proc# parted --script /dev/sda unit B resizepart 2 1166016512B
 Warning: Shrinking a partition can cause data loss, are you sure you 
 want to continue?
root@195-xxx-xxx-xxx:/proc# echo $?
1

ベストアンサー1

私の場合は、ttyless SSHセッションでParted 3.2を使用しています。分離されたコードには次のテストがあるため、「Yes」コマンドハッキングは機能しません。

    /* script-mode: don't handle the exception */
    if (opt_script_mode || (!isatty (0) && !pretend_input_tty))
            return PED_EXCEPTION_UNHANDLED;

「isatty」テストに注意してください。このテストは失敗します。 "pretend_input_tty"は、--pretend-input-ttyで有効にできる文書化されていないコマンドラインオプションです。

したがって、スクリプトでpartedを使用したい場合は、私の答えは次のようになります。

/sbin/parted -a optimal /dev/loop1 ---pretend-input-tty resizepart 4 Yes 522239s

それでも問題が解決しない場合は、Yes最後に移動してみてください。

/sbin/parted -a optimal /dev/loop1 ---pretend-input-tty resizepart 4 522239s Yes

ノートttyの前にダッシュ3つを入力するふりをします。私はそれが私たちを驚かせるべきだと思います。しかし、わかりません。

おすすめ記事