Bash 스크립트의 읽기 명령은 읽기 명령으로 실행되지 않고 텍스트를 명령줄에 직접 출력합니다.

Bash 스크립트의 읽기 명령은 읽기 명령으로 실행되지 않고 텍스트를 명령줄에 직접 출력합니다.

일부 명령을 자동화하기 위해 bash 스크립트를 작성했지만 스크립트의 첫 번째 줄이 실행해야 하는 컴퓨터에서 작동하지 않습니다. 코드는 아래와 같이 표시됩니다.

#!/bin/bash 
#some comments
read -p 'press enter to begin'
echo "Please Wait..."
#rest of the script

이것은 자동화 스크립트의 매우 간단한 실행이며 스크립트를 테스트하고 실행하는 데 사용하는 가상 머신에서는 제대로 실행되지만 작업 환경에서 스크립트가 실행되면 read -p 'press enter to begin'텍스트를 명령줄에 직접 출력한 다음 중지됩니다. running; 프롬프트를 사용하여 명령의 원하는 결과를 읽는 대신 press enter to begin사용자의 입력을 기다린 다음 Please wait...스크립트가 실행될 때 이를 에코합니다.

sudo bash ./path/to/file.sh

온라인에서 이 문제에 대한 정보를 찾을 수 없기 때문에 이 문제를 해결하려면 어떻게 해야 할지 모르겠습니다.

모든 기본적인 문제 해결 단계를 거쳤습니다. 파일이 실행 가능한지 확인하고, 실행 시 이를 bash 파일로 지정하고(bash 주석 없이는 실제로 실행되지 않음), 명령에서 직접 스크립트에서 동일한 파일을 실행했습니다. line 명령의 결과를 읽고(원하는 것을 출력 press enter to begin하고) 사용자 입력을 기다립니다. 어떤 제안이 있으십니까? set -x오늘이나 내일 기회가 되면 이 명령을 사용하여 스크립트를 실행할 계획입니다 .

답변1

읽기 명령을 사용할 때 스크립트가 손상되는 이유를 알아냈습니다.

read -p 'prompt'

바꾸다

read -p "prompt"

큰따옴표로 변경했더니 이 질문에서 질문한 시작 부분에 대해 스크립트가 제대로 실행되었습니다. 이 특정 형식으로 인해 스크립트가 중단되는 이유는 무엇입니까? 모르겠어요. 제가 사용하고 있는 컴퓨터는 매우 까다롭고 다른 환경에서 작동해야 하는 것에 대한 이상한 형식 지정 환경 설정이 있습니다.

관련 정보