![사용자에게 입력을 요청하는 명령에 스크립트 변수 제공](https://linux55.com/image/181034/%EC%82%AC%EC%9A%A9%EC%9E%90%EC%97%90%EA%B2%8C%20%EC%9E%85%EB%A0%A5%EC%9D%84%20%EC%9A%94%EC%B2%AD%ED%95%98%EB%8A%94%20%EB%AA%85%EB%A0%B9%EC%97%90%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EB%B3%80%EC%88%98%20%EC%A0%9C%EA%B3%B5.png)
ABCD.sh
사용자 이름과 비밀번호를 묻는 메시지를 서버에 업로드하는 명령이 포함된 쉘 스크립트가 있습니다 .
여기에 사용자 이름과 비밀번호를 제공하고 싶지 않지만 사용자 이름과 비밀번호를 외부 매개변수로 전달하고 싶은데 어떻게 가능합니까?
username =$1
password=$2
pushcommand
사용자 이름과 비밀번호를 묻습니다 pushcommand
. 쉘스크립트는 자동으로 $1
및 에서 이를 얻어야 합니다 $2
.
답변1
pushcommand가 단순히 표준 입력에서 첫 번째 사용자 이름을 읽은 다음 새 줄로 구분된 비밀번호를 읽는 경우 다음을 수행할 수 있습니다.
echo "$username\n$password" | pushcommand
여기서 "echo" 호출은 사용자 이름과 비밀번호 변수를 별도의 줄에 출력합니다.
"|"는 "왼쪽 명령의 출력을 오른쪽 명령의 입력으로 사용한다"는 의미입니다. 이 구성을 셸 스크립트에서는 "파이프라인"이라고 합니다.
더 복잡한 대화형 스크립트를 작성하려면 다음을 확인하는 것이 좋습니다.예상되는아니면 어쩌면커밋. Expect 또는 kermit의 도움을 받으려면 표시되는 프롬프트 등 pushcommand의 대화형 사용이 실제로 어떤 모습인지 보여주는 예를 게시해야 합니다.