Shell-Script
Bash 腳本的子shell
子 shell 命令必須在 bash 腳本中自動執行。
它會自動執行,然後在 bash 中執行子 shell,但它需要人工互動我想在我的 bash 腳本中自動執行它。
我的主要 Bash 腳本命令列表:
#!/bin/sh # ****some-commands**** askbot-setup;
子shell執行
Deploying Askbot - Django Q&A forum application Problems installing? -> please email admin@askbot.org 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 腳本的命令之後,我的子 shell 的上述命令是什麼命令。
我會先查看 askbot 文件並檢查 askbot-setup 是否可以從命令行或通過某種形式的答案文件獲得答案。
如果一切都失敗了,您可以使用 autoexpect(1) 創建一個 expect(1) 腳本來模擬您與 askbot-setup 的手動互動。
只是為了避免術語混淆 - “子shell”通常是指 shell 腳本中的一組命令,這些命令由於被括號包圍而在單獨的程序空間中執行。您在這裡所指的那種軟體最好被描述為互動式安裝腳本。