문제점 : 사용자에게 IP/호스트 이름 & 암호 (둘 다 액세스 할 수 있음)를 묻는 스크립트 세트를 생성하려고 시도 중입니다. & 다음으로 VM에 SSH를 넣으십시오. 두 번째 스크립트는 다양한 업데이트와 서비스로 환경을 기준으로하는 일련의 명령을 실행합니다.Bash 스크립트는 로컬에서 작동하지만 ssh에서는 작동하지 않습니다. 왜 그런가?
로컬로 실행하면이 스크립트가 올바르게 작동합니다. 호스트 이름을 표시하고 확인을 요청하여 해당 환경에서 업데이트를 실행합니다.
is-mbp-jsmith:Setting Up Dev Env's jsmith $ sh baseline.sh
Are you sure you want to run your script on is-mbp-jsmith.somecompany.com?
1) yes
2) no
#? 1
Running Script...
이 스크립트로 일하고 : 여기 -------------------baseline.sh
#!/bin/bash
#filename: baseline.sh
echo "Are you sure you want to run your script on $(hostname -f)?"
OPTIONS="yes no"
select opt in $OPTIONS; do
if [ "$opt" = "yes" ]; then
echo Running Script...
#do script things
exit
elif [ "$opt" = "no" ]; then
echo Canceling Run...
exit
else
echo Please Input Either the # 1 or 2.
fi
done
는 출력 내 로컬 컴퓨터에서 사용하기 위해
----------------------------------------- --modifyDevEnv.sh
다음은 내가 파이프에 사용하고있는 스크립트입니다. 위의 스크립트를 VM에 추가하십시오. 여기
#!/bin/bash
#filename: modifyDevEnv.sh
echo Enter a hostname/IP for the Dev Environment to connect to.
read HOST
ssh $HOST -l root 'bash -s' < baseline.sh
이 스크립트를 실행할 때 내가 얻을 출력 : 즉시 종료 후 두 번 옵션 명령을 실행하고 같은
is-mbp-jsmith:Setting Up Dev Env's jsmith $ sh modifyDevEnv.sh
Enter a hostname/IP for the Dev Environment to connect to.
10.58.88.53
[email protected]'s password:
Are you sure you want to run your script on vm-jsmith.somecompany.com?
1) yes
2) no
#? 1) yes
2) no
#? is-mbp-jsmith:Setting Up Dev Env's jsmith $
ssh를 통해 실행
스크립트가 보인다 . 사용자가 예/아니오에 대한 옵션을 입력 할 수 있도록 허용하지 않습니다.
사용자 입력이 인 ssh보다 사용자 입력이 필요하지만이 문제가 저를 괴롭혔습니다. 나는 Bash (내가 시도하고있는 첫 번째 실제 스크립트)에 상당히 익숙하다. 그러나 구문에 잘못된 것이 없다. 제가 누락 된 것이 있습니까?