서브셸 내에서 bash 실행

서브셸 내에서 bash 실행

나를 서브셸에 넣는 명령이 있다고 가정해 보겠습니다(예: nix-shell). bash 스크립트가 있는 경우

enter-subshell
echo hi

echo hi서브쉘을 종료할 때까지 실행을 기다립니다 . 수동으로 두 줄을 차례로 입력하는 것과 동일하게 동작하는 스크립트를 작성하는 방법이 있습니까? 즉, 새로 호출된 셸에서 후속 명령이 실행됩니까?

편집: 내가 하려는 일에 대한 보편적인 해결책은 없는 것 같습니다.

답변1

스크립트를 생성하고 해당 셸을 호출하여 스크립트를 인수로 호출해야 합니다. 예를 들어:

$ echo "echo hi" > my_echo.subshell
$ echo "enter-subshell -c my_echo.subshell" > my_script.bash
$ ./my_script.bash

서브셸에 인수를 전달하는 방법(예: " -c")은 서브셸에 따라 다르며, 각 쉘은 서로 다른 인수를 사용할 수 있습니다.

대안으로 두 번째 스크립트를 생성하지 않으려면 지침을 셸로 리디렉션할 수도 있습니다. 또한 호출하는 쉘에 따라 달라집니다. 예를 들어:

enter-subshell -e <<EOF
echo hi
EOF

이 접근 방식에 대해서는 "여기에 파일". 마찬가지로 특정 하위 쉘(예제에서는 " " -e)을 실행하는 올바른 방법을 찾을 수 있습니다.

관련 정보