나를 서브셸에 넣는 명령이 있다고 가정해 보겠습니다(예: 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
)을 실행하는 올바른 방법을 찾을 수 있습니다.