Linux는 DOS 일시 중지에 상당합니까?
사용자가 키를 누를 때까지 실행을 일시 중지하는 Bash 셸 스크립트가 있습니다.DOS 에서는, 이것을 간단하게 실행할 수 있습니다.pause명령어를 입력합니다.스크립트에 Linux와 동등한 것을 사용할 수 있습니까?
read다음 작업을 수행합니다.
user@host:~$ read -n1 -r -p "Press any key to continue..." key
[...]
user@host:~$
그-n1는 단일 문자만을 대기하도록 지정합니다.그-rraw 모드가 됩니다.필요하죠.그렇지 않으면 백슬래시 등의 키를 누르면 다음 키를 누를 때까지 등록되지 않기 때문입니다.그-p는 프롬프트를 지정합니다.스페이스가 포함되어 있는 경우는 따옴표로 묶어야 합니다.그key인수는 어떤 키를 눌렀는지 알고 싶을 때만 필요합니다.이 경우 를 통해 액세스 할 수 있습니다.$key.
Bash 를 사용하고 있는 경우는, 다음의 방법으로 타임 아웃을 지정할 수도 있습니다.-t키를 누르지 않으면 읽기 오류가 반환됩니다.예를 들어 다음과 같습니다.
read -t5 -n1 -r -p 'Press any key in the next five seconds...' key
if [ "$?" -eq "0" ]; then
echo 'A key was pressed.'
else
echo 'No key was pressed.'
fi
매우 짧은 방법을 많이 사용하고 있으며, @theunamedguy 및 @Jim 솔루션과 비슷하지만 타임아웃과 사일런트 모드가 추가되어 있습니다.
특히 마지막 케이스가 마음에 들어 사용자가 를 누를 때까지 루프에서 실행되는 많은 스크립트에서 사용합니다.
명령어
솔루션 입력
read -rsp $'Press enter to continue...\n'이스케이프 솔루션 (-d $'\e' 포함)
read -rsp $'Press escape to continue...\n' -d $'\e'모든 주요 솔루션 (-n 1)
read -rsp $'Press any key to continue...\n' -n 1 key # echo $key미리 선택한 질문 (-ei $'Y' 포함)
read -rp $'Are you sure (Y/n) : ' -ei $'Y' key; # echo $key타임아웃 솔루션 (-t 5 포함)
read -rsp $'Press any key or wait 5 seconds to continue...\n' -n 1 -t 5;sleep 확장 별칭
read -rst 0.5; timeout=$? # echo $timeout
설명.
-r은 raw 모드를 지정합니다.이 모드에서는 "\" 또는 "^"과 같은 문자를 조합할 수 없습니다.
-s는 사일런트모드를 지정합니다.키보드 출력이 필요 없기 때문입니다.
-p $'discape'는 프롬프트를 지정합니다.이 프롬프트는 공백과 이스케이프 문자를 사용하려면 $'에서 "" 사이여야 합니다.이스케이프된 문자를 사용하려면 달러 기호가 있는 작은 따옴표를 사용해야 합니다. 그렇지 않으면 단순 따옴표를 사용할 수 있습니다.
-d $'\e'는 딜리미터 문자로 escape를 지정하기 때문에 현재 엔트리의 마지막 문자로서 임의의 문자를 입력할 수 있지만 사용자가 입력할 수 있는 문자를 입력할 수 있도록 주의하십시오.
-n 1은 단일 문자만 필요함을 지정합니다.
-e는 readline 모드를 지정합니다.
-i $'Y'는 읽기 라인 모드에서 Y를 초기 텍스트로 지정합니다.
-t 5는 타임아웃을 5초로 지정합니다.
key serve는 입력이 필요한 경우, -n1의 경우 누른 키를 알아야 하는 경우입니다.
$?? 마지막 프로그램의 종료 코드를 알 수 있습니다.읽을 경우 타임아웃 시 142개, 입력은 0개).모든 명령어가 $를 다시 쓰기 때문에 somes 명령어 후에 $를 테스트해야 하는 경우 가능한 한 빨리 변수에 $?를 넣으십시오.
read매개 변수가 없는 경우 Enter 키를 누른 경우에만 계속됩니다.pause아무 키나 누르면 명령이 계속됩니다.read –n1이 행동을 원한다면요.
이것은 여러 종류의 Linux에서 작동했지만, 다른 솔루션에서는 작동하지 않았습니다(여기서 가장 인기 있는 솔루션도 포함).그게 더 읽기 쉬운 것 같아요.
echo Press enter to continue; read dummy;
.read.
read -n1을 사용하다동일한 작업을 수행하는 휴대용 방법은 다음과 같습니다.
( trap "stty $(stty -g;stty -icanon)" EXIT
LC_ALL=C dd bs=1 count=1 >/dev/null 2>&1
) </dev/tty
★★★★★★★★★★★★★★★★를 사용하는 것 외에,read 됩니다ENTER계속 프롬프트를 표시하려면 다음 작업을 수행합니다.
sed -n q </dev/tty
또는 일시 키를 할 키를 누릅니다.read알아서 할 수 있을 거야
do_stuff
read
do_more_stuff
최종 사용자에게 편리한 것은 아니지만, 사용자가 직접 빠른 스크립트를 작성하고 백그라운드에서 수동으로 작업을 수행하기 위해 스크립트를 일시 중지해야 하는 경우에는 충분할 수 있습니다.
은 두 가지 할 수 있습니다.bash ★★★★★★★★★★★★★★★★★」zsh입출력하다
# Prompt for a keypress to continue. Customise prompt with $*
function pause {
>/dev/tty printf '%s' "${*:-Press any key to continue... }"
[[ $ZSH_VERSION ]] && read -krs # Use -u0 to read from STDIN
[[ $BASH_VERSION ]] && </dev/tty read -rsn1
printf '\n'
}
export_function pause
의 기 your에 ..{ba,z}shrc★★★★★★★★★★★★★★★★!
이것으로 수정되므로 ENTER 이외의 키를 눌러도 새로운 행으로 이동합니다.
read -n1 -r -s -p "Press any key to continue..." ; echo
윈도우 일시정지보다 낫다.왜냐하면 텍스트를 변경하여 더 유용하게 만들 수 있기 때문이다.
read -n1 -r -s -p "Press any key to continue... (cant find the ANY key? press ENTER) " ; echo
, ★★★read두에 가장 몇 가지 수정 . - -고두두 - - - - - - - - - - - - - - - - - - - - 。cron터미널에 있습니다.
예:
time rsync (options)
read -n 120 -p "Press 'Enter' to continue..." ; echo " "
에 -n120은 -n120을 2분으로 .cron
동안 동안 2분 동안 동안 2분 동안 계속됩니다.rsync명령어를 실행해야 합니다.
음음 then then then then then then then.echo때리다
그렇지 않으면 "continue.." 바로 뒤에 같은 줄에 표시됩니다." 를 터미널에서 누릅니다.
내가 작은 프로그램을 만들어서pause명령어를 사용합니다.GitHub repo에 코드를 올렸습니다.
인스톨 하려면 ,
git clone https://github.com/savvysiddharth/pause-command.git
cd pause-command
sudo make install
을 설치하면, 이제 하실 수 .pause이치노
또, 다음과 같은 옵션의 커스텀 스트링도 서포트하고 있습니다.read.
예:
pause "Pausing execution, Human intervention required..."
해서 C 때 C/C++로 하다와 같은 을 사용합니다.system("pause");【리눅스】【리눅스】
이것을 시험해 보세요.
function pause(){
read -p "$*"
}
언급URL : https://stackoverflow.com/questions/92802/what-is-the-linux-equivalent-to-dos-pause
'programing' 카테고리의 다른 글
| C#에서 범용 목록을 복제하려면 어떻게 해야 하나요? (0) | 2023.04.14 |
|---|---|
| makefile의 여러 줄 bash 명령어 (0) | 2023.04.14 |
| 데이터 바인딩을 통해 WPF 하이퍼링크의 텍스트를 설정하려면 어떻게 해야 합니까? (0) | 2023.04.14 |
| WPF 버튼을 링크처럼 보이게 하려면 어떻게 해야 하나요? (0) | 2023.04.14 |
| 태그 또는 태그 부착에 권장되는 SQL 데이터베이스 설계 (0) | 2023.04.14 |