환경 변수와 구성은 실제로 세션에 로그인할 때만 읽는 것처럼 보이기 때문에 대화형 프롬프트에서 실행해야 하는 Bash 스크립트가 있습니다. 예는 다음과 같습니다:
좋아요
me@client:~$ ssh box
user@box:~$ /usr/local/bin/myscript
나쁜
me@client:~$ ssh box "/usr/local/bin/myscript"
단일 줄 SSH 명령을 통해 실행되는지 확인하기 위해 스크립트에서 사용할 수 있는 Bash-fu가 있습니까?
답변1
표준 입력에 연결된 터미널이 있는지 확인할 수 있습니다( tty
명령이 수행하는 작업). 스크립트에 다음 줄을 추가하세요.
if ! tty >/dev/null; then
echo "Must be run from a tty"
exit 1
fi
올바르게 실행되지 않으면 이제 스크립트가 오류와 함께 종료됩니다.
$ ssh badabing ~/scripts/a.sh
Must be run from a tty
$ ssh badabing
terdon@badabing ~ $ ~/scripts/a.sh
Works!