2016-12-13 1 views
2

나는 데몬 처치 컨테이너를 가지고있다. 한 번에 여러 개의 bash 명령을 다음과 같이 해당 컨테이너의 현재 사용자로 실행할 수 있습니다.Bash 명령과 배쉬 명령어 인자

docker exec -it <container_ID> /bin/bash -c "pwd; cd src; pwd" 

이제는 bash 스크립트를 통해이를 수행해야합니다.

#!/usr/bin/env bash 
# Here I do stuff to acquire the container_ID 
docker exec -it <container_ID> -user $(id -u):$(id -g) [email protected] 

그리고 I는 다음과 같이 스크립트에 인수를 전달합니다 : 스크립트는 간단 예상대로 따옴표가 제거되기 때문에, 작동, 어떤 고정 표시기 간부가 얻는 것은하지 않습니다

./run_in_container.sh /bin/bash -c "pwd; cd src; pwd" 

/bin/bash -c pwd; cd src; pwd. 그래서 나는 다음과 같은 시도 :

./run_in_container.sh /bin/bash -c '"pwd; cd src; pwd"' 

그리고이 오류 메시지가 얻을 :

cd: -c: line 0: unexpected EOF while looking for matching `"' 
cd: -c: line 1: syntax error: unexpected end of file 

무엇이 일을 올바른 방법이 될 것입니까?

이 경우 매우 중요한 정보가 아닌지 의심 스럽지만 Gnu bash 4.3.11을 사용하고 있습니다. [email protected] 주위

답변

2

사용 지수 : 실제로 작동

docker exec -it <container_ID> -user $(id -u):$(id -g) "[email protected]" 
+0

! 내가 그것을 변수에 저장하자마자,'COMMAND = $ @'처럼, "$ {COMMAND}"를 사용하는 것은 더 이상 작동하지 않습니다. 나는 그것이 내가 물었던 질문이 아니라는 것을 안다. 그러나 왜 그것을 변수에 할당하는 것이 실패하게 만드는가? –