サブシェルコマンドはbashスクリプト内で自動的に実行する必要があります。
自動的に実行され、次にbashでサブシェルを実行しますが、人間の対話が必要なので、bashスクリプトで自動化したいと思います。
私の主要なBashスクリプトコマンドのリスト:
#!/bin/sh
#
****some-commands****
askbot-setup;
サブシェルの実行
Deploying Askbot - Django Q&A forum application
Problems installing? -> please email [email protected]
To CANCEL - hit Ctr-C at any time
Enter directory path (absolute or relative) to deploy
askbot. To choose current directory - enter "."
> .
Please select database engine:
1 - for postgresql, 2 - for sqlite, 3 - for mysql, 4 - oracle
type 1/2/3/4: 3
Please enter database name (required)
> askbotdb
Please enter database user (required)
> askbotuser
Please enter database password (required)
> askbotpasswords
Copying files:
* __init__.py
* manage.py
* urls.py
* django.wsgi
Creating settings file
settings file created
myshellスクリプトで特定のコマンドの実行を自動化して、人との対話なしで実行できるようにしたいと思います。
.
3
askbotdb
askbotuser
askbotpasswords
askbot-setup
それでは、Bashスクリプトコマンドの後に私のサブシェルのコマンドは何ですか?
答え1
まず、Askbotドキュメントを見て、Askbot-setupがコマンドラインまたはレスポンスファイル形式でレスポンスを取得できることを確認しました。
他のすべての方法が失敗した場合は、autoexpect(1)を使用してAskbot-setupとの手動相互作用をシミュレートするExpect(1)スクリプトを作成できます。
用語の混乱を避けるために、「サブシェル」は通常括弧で囲まれているため、別々のプロセス空間で実行されるシェルスクリプト内の一連のコマンドを表します。ここで言及したソフトウェアの種類は、インタラクティブなインストールスクリプトで最もよく説明されています。