$ ssh t@localhost [[ $- == *i* ]] && echo 'Interactive' || echo 'Not interactive'
Interactive
-s
위 셸에 옵션 인수가 없고 또는 가 -c
없기 때문에 왜 대화형인지 궁금합니다 -i
.
Bash 매뉴얼에서:
대화형 쉘은 -s가 지정되었지만 -c 옵션이 지정되지 않은 경우, 입력 및 오류 출력이 터미널(isatty(3)에 의해 결정된 대로)에 연결되지 않는 한 옵션이 아닌 인수 없이 시작된 쉘입니다. 또는 시작 사용: -i 옵션.
감사해요.
답변1
당신은 당신이 생각했던 테스트를 수행하고 있지 않습니다. 확장이 $-
진행 중입니다앞으로명령이 ssh
실행됩니다. 전시하다:
$ set -x
$ ssh home echo $-
+ ssh home echo himxBHs
himxBHs
$ ssh home 'echo $-'
+ ssh home 'echo $-'
hBc