메시지가 표시되면 "bash -c"를 준비된 상태로 유지하세요.

메시지가 표시되면 "bash -c"를 준비된 상태로 유지하세요.

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프로세스 지연이 포함되며, 장점에는 초기 명령 목록 기능 지원 여부에 관계없이 모든 프로그램에 적용된다는 장점이 있습니다.

관련 정보