Bash의 파일 또는 사용자 입력에서 읽기

Muhammad Husnain 2023년1월30일
  1. BASH 스크립트
  2. Bash 스크립트의 stdin에서 입력
  3. 배시 파일 입력
Bash의 파일 또는 사용자 입력에서 읽기

BASH는 Bourne Again Shell의 줄임말로 Bourne Shell(예: Steven Bourne이 만든)을 가리키는 스마트 이름입니다. BASH는 Bourne Shell 애플리케이션 sh의 업데이트된 버전으로 Brian Fox가 개발한 쉘 프로그램입니다.

이 기사에서는 bash 스크립트의 입력 기능과 표준 입력 콘솔 및 일부 특정 파일에서 입력을 가져오는 방법에 대해 설명합니다. 또한 아이디어를 설명하기 위해 여러 예제 스크립트를 살펴볼 것입니다.

BASH 스크립트

일반적으로 명령줄에 넣는 명령 목록이 포함된 일반 텍스트 파일을 Bash Shell Script라고 합니다. Bash는 일련의 작업이 반복적으로 수행되어야 할 때 특히 유용합니다.

매번 같은 순서의 지침을 수동으로 입력하는 대신 미리 작성된 Bash 스크립트 파일만 실행할 수 있습니다. 따라서 많은 수작업을 절약하고 시간도 절약할 수 있습니다.

Bash 스크립트의 또 다른 장점은 명령형 프로그래밍 기능입니다. 이는 프로그래밍 언어(예: C/C++, Javascript 등)와 같은 절차, 조건문 및 루핑 구조를 작성할 수 있음을 의미합니다.

Bash 스크립트는 .sh 확장자를 가진 텍스트 파일입니다. 그것을 생성하기 위해 확장자가 .shtouch 명령을 사용합니다.

touch myscript.sh

예를 들어 gedit와 같은 텍스트 편집기에서 열 수 있습니다. 그것을 열려면 다음 명령을 사용하십시오.

명령:

gedit myscipt.sh

쉘 스크립트를 시작하기 위해 #!/bin/bash 라인을 사용합니다. 이 줄에서 #! 부분은 shebang으로 알려져 있고 나머지 부분은 운영 체제에서 bash 인터프리터의 경로입니다.

그런 다음 스크립트에 필요한 명령 집합을 작성하고 저장합니다. Bash 스크립트를 실행하려면 bash 명령을 사용합니다.

명령:

bash myscript.sh

이것은 스크립트를 실행하고 스크립트에서 사용된 명령의 출력을 제공합니다.

Bash 스크립트의 stdin에서 입력

터미널이나 Bash 스크립트의 stdin에서 사용자 입력을 받을 수도 있습니다. 내장된 Bash 명령 read를 사용하여 Bash 사용자 입력을 읽을 수 있습니다.

사용자의 입력을 받아 변수에 할당합니다. Bash 셸에서 한 줄만 읽을 수 있습니다.

통사론:

read <variable>

공백으로 구분된 각 단어는 다른 변수에 저장됩니다.

Bash 스크립트 예:

#!/bin/bash
echo "Enter your name: "
read userName
echo "Enter your age: "
read userAge;
echo "Enter your 3 Subjects: "
read sub1 sub2 sub3
echo "The user $userName is $userAge years old and is specialized in $sub1, $sub2, and $sub3. "

이 예에서 우리는 사용자의 이름, 나이 및 3개의 주제를 입력받았습니다. 주제는 별도의 변수에 저장됩니다.

출력:

Bash 셸에서 한 줄만 읽습니다

read 명령으로 변수 이름을 지정하는 것은 필수가 아닙니다. 변수 이름을 지정하지 않으면 기본적으로 REPLY 변수에 값을 저장하므로 나중에 스크립트에서 사용할 수 있습니다.

Bash 스크립트 예:

#!/bin/bash
echo "Enter a number from 1-10: "
read
echo "You entered: $REPLY"

출력:

기본적으로 REPLY 변수에 값을 저장합니다

이전 예에서 우리는 입력을 받기 위해 2개의 라인을 사용했습니다. 하나는 프롬프트 문을 위한 것이고 다른 하나는 읽기 명령을 위한 것입니다. 이 프로세스는 read 명령과 함께 -p 플래그를 사용하여 한 줄로 수행할 수도 있습니다.

통사론:

read -p <Prompt statement> <variable_name>

바흐 스크립트 예:

#!/bin/bash
read -p "Please enter the name of the file: " fileName
echo "The filename you entered is: $fileName"

출력:

read 명령과 함께 -p 플래그 사용

보안 및 개인 정보 보호 문제를 위해 화면에서 사용자 입력을 숨겨야 하는 경우가 있습니다. 예를 들어 비밀번호를 입력해야 할 때 사용자가 비밀번호를 입력하는 동안 화면에 표시되지 않아야 합니다.

이를 달성하기 위해 플래그 -를 사용하여 침묵하게 만듭니다.

Bash 스크립트 예:

#!/bin/bash
read -p "Enter username: " userName
read -sp "Enter Password: " pass
echo
echo "Hello $userName"

출력:

-s 플래그를 사용하여 암호 입력이 화면에 표시되지 않도록 합니다

-a 플래그를 사용하여 배열에서 입력을 받을 수도 있습니다. 이 플래그를 사용하면 한 줄의 모든 단어가 나중에 액세스할 수 있는 배열의 다른 인덱스에 저장됩니다.

Bash 스크립트 예:

#!/bin/bash
echo "Enter names of 2 students: "
read -a stuNames
echo "The names of students are:${stuNames[0]}, ${stuNames[1]} "

출력:

-a 플래그를 사용하여 배열에서 사용자 입력 받기

배시 파일 입력

Bash 스크립트는 파일에서 입력을 받을 수도 있습니다. read 명령은 이를 위해 사용되며 파일을 한 줄씩 읽습니다. 파일에서 데이터를 읽는 몇 가지 예에 대해 설명합니다.

콘솔과 스크립트를 사용하여 파일에서 읽을 수 있습니다. 먼저 콘솔 명령을 보고 스크립트 쪽으로 이동합니다.

다음과 같이 일부 텍스트가 포함된 data.txt 파일이 있다고 가정합니다.

LG
Samsung
Bosch
Pel

이 파일을 읽는 명령:

while read ln; do echo $ln; done < data.txt

출력:

BASH에서 .txt 파일 읽기

스크립트를 사용하여 파일에서 읽을 수도 있습니다.

Bash 스크립트 예:

#!/bin/bash
fname='data.txt'
a=1
while read ln; do
echo "Reading line $a : $ln"
a=$((a+1))
done < $fname

출력:

스크립트를 사용하여 파일에서 읽기

명령줄에서 파일 이름을 읽을 수도 있습니다. bash 파일을 만들고 아래 스크립트를 넣습니다.

파일 이름은 이 스크립트에 의해 입력된 명령줄에서 가져옵니다. 읽기용 파일 이름을 보유할 변수 $1은 첫 번째 인수 값을 읽습니다.

파일이 현재 위치에 있는 경우 while 루프는 이전 예제와 같이 파일을 한 줄씩 읽고 내용을 인쇄합니다.

Bash 스크립트 예:

#!/bin/bash
fname=$1
while read ln; do
echo $ln
done < $fname

이 스크립트를 실행하려면 다음 명령을 사용합니다.

명령:

$ bash myscript.sh data.txt

출력:

명령줄에서 파일 이름 읽기

Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn

관련 문장 - Bash Input