bash -c
종료하는 대신 쉘 프롬프트를 어떻게 유지할 수 있습니까 ?
답변1
대화형 모드로 들어가고 싶지만 미리 일부 스크립트를 실행하는 경우. 또는 스크립트를 실행하고 대화형 모드를 유지하세요. 그렇다면 열쇠 --init-file
는 당신을위한 것입니다.
당신이 가지고 있다고 가정hello.sh
#!/bin/bash
echo "Hello"
export PS1=subshell@
하다
$ bash --init-file hello.sh
Hello
subshell@
답변2
expect
또 다른 접근 방식은 이미 여러 언어로 구현된 접근 방식을 사용하는 것입니다 . 원시 TCL에서는 다음을 사용할 수 있습니다.
#!/usr/bin/env expect
# run the shell
spawn -noecho bash
# blindly send the input in. another way would be to "expect" on the
# prompt, but that's more complicated
send -- "echo foo\n"
send -- "echo bar\n"
# turn interaction with the program over to the user
interact
단점에는 expect
프로세스 지연이 포함되며, 장점에는 초기 명령 목록 기능 지원 여부에 관계없이 모든 프로그램에 적용된다는 장점이 있습니다.