카피 스트라 노 박사는 말한다대화 미나와 쉘 및 카피 스트라 노
http://capistranorb.com/documentation/faq/why-does-something-work-in-my-ssh-session-but-not-in-capistrano/#의 명령이 실행되는 원격 "대화 형 및 비 로그인 쉘"@ 나를 ssh를하는 것이
ssh [email protected] "[[ $- == *i* ]] && echo 'Interactive' || echo 'Not interactive'"
Interactive
[email protected] $ ssh [email protected] "shopt -q login_shell && echo 'Login shell' || echo 'Not login shell'"
Not login shell
카피 스트라 노 상태입니다. 아주 잘하지만 여기에 내 요점이 있습니다.
내가이 무슨 짓을, 나는 작은 따옴표의 카피 스트라 노의 예를 감싸 대신 큰 따옴표 ("
)의 지금이
echo $-
# If not running interactively, don't do anything
case $- in
*i*) echo 'Interactive';;
*) echo 'Non Interactive';;
esac
같이 .bashrc에 내 에서 간단한 테스트를 추가 ('
) 나는 따옴표 내 경우에 내 노트북 tty
단자)입니다 (현재 쉘의 표현을 확장 느꼈기 때문에
결과 :
ssh [email protected] '[[ $- == *i* ]] && echo "Interactive" || echo "Not interactive"'
hBc
Non Interactive
Not interactive
Question 1:
- 카피 스트라 노의 문서 맞습니까?. 위의 결과를 보면 위의 명령은 비동기 및 로그인이 아닌 쉘에서 실행되는 ssh를 통해 실행됩니다.
Question 2:
내가 맞으면 (질문 1) 대화 형 셸에서 명령을 어떻게 실행할 수 있습니까?. 나는 -t
옵션을 사용하여 tty
할당을 강제로 설정하고 도움을 줄 것이라고 생각했습니다. 하지만 그건 도움이되지 않습니다. 이제 원래의 질문에
ssh [email protected] -t '[[ $- == *i* ]] && echo "Interactive" || echo "Not interactive"'
hBc
Non Interactive
Not interactive
Connection to remote closed.
Question 3:
. 내 배포 물건에 미나를 사용하고 있습니다. 이제 미니어 배포 중에는 절대로드되지 않습니다.
이유는 내 배쉬
# bashrc
case $- in #when mina load bashrc it's a non-interactive shell.
*i*) ;;
*) return;;
esac
source ~/.rvm/scripts/rvm # this is never gets executed
Question 4(a)
어떻게 사람들이이 문제를 해결 않습니다 bashrc에에서 사용되는 용어의 정의는 다음이있다? 확실하게 파일 상단에있는 rvm 소스로드를 이동하면 도움이되지만 다른 대답을 찾고 있습니다.
Question 4 b
: Capistrano와 Mina는 어떻게 처리합니까? 그들이 할 수 있다면?
가 올바른지 : "기본적으로 카피 스트라 노 항상 비 로그인, 비 대화 형 쉘을 지정합니다." 저를 정정 –