ABCD.sh
사용자 이름과 비밀번호를 묻는 메시지를 서버에 업로드하는 명령이 포함된 쉘 스크립트가 있습니다 .
여기에 사용자 이름과 비밀번호를 제공하고 싶지 않지만 사용자 이름과 비밀번호를 외부 매개변수로 전달하고 싶은데 어떻게 가능합니까?
username =$1
password=$2
pushcommand
사용자 이름과 비밀번호를 묻습니다 pushcommand
. 쉘스크립트는 자동으로 $1
및 에서 이를 얻어야 합니다 $2
.
답변1
pushcommand가 단순히 표준 입력에서 첫 번째 사용자 이름을 읽은 다음 새 줄로 구분된 비밀번호를 읽는 경우 다음을 수행할 수 있습니다.
echo "$username\n$password" | pushcommand
여기서 "echo" 호출은 사용자 이름과 비밀번호 변수를 별도의 줄에 출력합니다.
"|"는 "왼쪽 명령의 출력을 오른쪽 명령의 입력으로 사용한다"는 의미입니다. 이 구성을 셸 스크립트에서는 "파이프라인"이라고 합니다.
더 복잡한 대화형 스크립트를 작성하려면 다음을 확인하는 것이 좋습니다.예상되는아니면 어쩌면커밋. Expect 또는 kermit의 도움을 받으려면 표시되는 프롬프트 등 pushcommand의 대화형 사용이 실제로 어떤 모습인지 보여주는 예를 게시해야 합니다.