새 bash에 명령을 보내고 닫지 마십시오.


0

새 bash 인스턴스를 열고 명령을 입력 한 다음 해당 bash 인스턴스를 계속 사용하도록 스크립트를 작성 중입니다. 어떻게합니까? 지금은 이것을 가지고 있습니다 :

bash << EOF
    do_something()
EOF

새 bash 인스턴스가 do_something ()을 호출 한 다음 다른 명령을 입력하게하려면 어떻게해야합니까?

나중에 편집 :

실제로 제어 할 수없는 다른 회사 내부 명령을 사용하고 있습니다.이 명령은 배후에서 무언가를 수행 한 다음 미리 구성된 bash를 제공합니다. 이것이 제가 명령을 보내는 예제를 제공 한 이유입니다. 모든 인터프리터에 대해 구성 할 수 있기 때문입니다.


왜 "새 bash 인스턴스를 열어야합니까?" 더 큰 목표를 확장 할 수 있습니까?
StandardEyre

stackoverflow.com/a/7193037 이것이 당신이 원하는 것이라고 생각합니다.
Marek Rost

@MarekRost 내 게시물을 업데이트했습니다. 내가 원하는 것이 아닙니다. bash에서 호출되는 임의의 인터프리터를 생각하십시오. 명령을 보내고 다른 명령을 수동으로 입력하겠습니다.
카탈린 Vasile

답변:


2

서브 쉘을 사용하여 파이프로 배쉬하십시오. '스크립트'도 도움이 될 수 있습니다.

user@name:~$ (printf '%s\n' 'echo 1' 'echo 2'; cat) | bash
1
2
echo 3
3
user@name:~$ # DON'T do this: (printf '%s\n' 'echo 1' 'echo 2'; cat) | bash -i
user@name:~$ (printf '%s\n' 'echo 1' 'echo 2'; cat) | script -c 'bash -i' /dev/null
++++Skript gestartet, die Datei ist /dev/null
++++user@name:~$ 1
++++user@name:~$ 2
++++user@name:~$ echo 3
++++3
++++user@name:~$ Skript wurde beendet, die Datei ist /dev/null
user@name:~$ 

비고 : 더하기 부호가 전혀 표시되지 않으므로 '스크립트'부분을 명확히하기 위해 추가했습니다.

대신에 script -c 'bash -i' /dev/null당신은 사용할 수 script /dev/null는 AS script명령을 호출 bash -i기본적으로.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.