서브셸 명령은 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) 스크립트를 만들 수 있습니다.
용어상의 혼란을 피하기 위해 "하위 쉘"은 일반적으로 괄호로 묶여 있기 때문에 별도의 프로세스 공간에서 실행되는 쉘 스크립트 내의 명령 세트를 나타냅니다. 여기서 언급한 소프트웨어 유형은 대화형 설치 스크립트로 가장 잘 설명됩니다.