FC2ブログ

Mistoreaa Blog

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

[Shell]対話的シェルを自動実行させる方法

プロセスの途中で標準入力を求めてくるような対話的なシェルスクリプトを自動実行させる方法。

yesコマンドかechoコマンドで要求される入力文字をパイプで実行するシェルに渡す。
yesコマンドは指定した文字列を繰り返し出力するので、何度も対話を求められるものに有効。

wizard.sh

#!/bin/bash

for i in 1 2 3
do
echo 'input [y or yes]'
read INPUTTED

if [ -z "${INPUTTED}" ]; then
echo 'process stopped.'
exit 1
elif [ "${INPUTTED}" != 'y' -a "${INPUTTED}" != 'yes' ]; then
echo 'process stopped.'
exit 1
fi
done

echo 'process continued.'


manage.sh

#!/bin/bash

WORD='yes'

yes "${WORD}" | sh ./wizard.sh

#echo "${WORD}" | sh ./wizard.sh


result

# yes利用の場合。
sh manage.sh
input [y or yes]
input [y or yes]
input [y or yes]
process continued.

# echo利用の場合。
sh manage.sh
input [y or yes]
input [y or yes]
process stopped.


================================


[Reference]
知らなかったyesコマンドの真の力 | harry’s memorandum
スポンサーサイト
  1. 2016/12/05(月) 00:53:54|
  2. Lang

プロフィール

Mafty

Author:Mafty
個人的な備忘録

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

NoCategory (2)
Lang (33)
Apps (19)
OS (25)
Framework (0)
Tools (20)
Server (3)
DB (2)
Network (0)
Files (0)
Hard (0)
Knowledge (2)

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。