명령을 사용하여 셸 명령 프롬프트 표시


0

명령 프롬프트를 표시하는 쉘 명령이 있습니까?

나는 아래 그림을 통해 내가 원하는 것을 설명 할 것이다.

script.sh를 실행하면 다음과 같은 결과가 나타납니다.

$sh script.sh
$                   /* command prompt and then print hi */
hi

내 script.sh는 다음과 같습니다.

#! /bin/bash

<command to display the shell command prompt>
echo "hi"
exit 0

위와 같은 결과를 얻으려면 꺽쇠 괄호 대신에 코드를 사용해야합니까?

감사


너 뭐하려고? 'echo $'는 리터럴 $를 출력하지만, 당신이 쓴 것입니까?

$ 단지 프롬프트의 예였습니다. 쉘 프롬프트를 그대로 표시하고 싶습니다.
LinuxPenseur

답변:


2

변수 PS1은 셸이 대화식 일 때만 설정되기 때문에 "set PS1 defined?"와 같이 이미 설정되어있는 경우 dot-rc 파일에서 변경해야하기 때문에 이식 할 수는 없습니다. 대화 형 셸에서 사용하기위한 고전적인 테스트입니다.

원하는 프롬프트를 선택하여 사용하십시오. 고전적으로, bash (bash- $로 기본 설정), & gt; '는 tcsh,'% '는 zsh,'# '는 루트이면.

일관성을 위해 상태를 전달하려한다면 "루트이면 # '을, 그렇지 않으면'$ '를 사용하십시오."


필 필자, 당신이 완전히 대답하는 것을 이해하지 못했습니다. 당신의 대답이 내 문제를 해결합니까? 나는 단순한 것을 원하지 않는다. $ 또는 # 표시 할 수 있습니다. 스크립트의 나머지 줄이 실행되기 전에 쉘 명령을 한 번 더 표시하고 싶습니다.
LinuxPenseur

쉘 명령 프롬프트는 대화식 스크립트에 정의되어 있지 않으므로이를 수행 할 수 없습니다. PS1을 설정 한 다음 재정의를 받기 위해 시작 파일을 시작할 수 있지만 "PS1이 설정 됨"이 스크립트 설정에 적합하지 않은 것이 호출 될 수 있으므로 위험합니다. (예 : stdin은 tty입니다.)
Phil P

1
따라서 대화 형 스크립트에는 명령 프롬프트가 없으며 대화 형이 아닌 경우 무엇이 될지 알 수 없습니다. 따라서 당신은 왜 당신이하고 싶은 일을하고 싶은지를 설명해야합니다. 우리가 당신이 현실적인 것을 성취 할 수 있도록 도와 주어야합니다.
Phil P

+1, 맞습니다. 할 수 없습니다. 스크립트가 명령 프롬프트를 쉽게 얻을 수 있다면, 트로이 목마 바이러스 / 악성 코드라고도하는 악의적 인 목적으로 Bash를 쉽게 에뮬레이션 할 수 있기 때문에 PS1이 설정되지 않았습니다.
Chris S

아뇨, PS1이 설정되지 않은 이유가 아닙니다. 대부분의 사람들은 OS 공급 업체가 제공하는 스톡 구성을 사용하므로 예측하기가 쉽습니다. 멀웨어가 그렇게까지 도달했다면 이미 망가졌습니다.
Phil P
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.