배쉬 변수

배쉬 변수

변수는 프로그래밍의 필수적인 부분입니다. 또는 프로그래밍 언어의 정신이라고 말할 수 있습니다. 변수는 문자, 숫자, 영숫자를 통해 메모리 위치를 지정합니다. 그들은 컴퓨터 프로그램에서 참조되고 조작되는 데 사용됩니다.

변수는 무엇입니까?

변수는 데이터나 유용한 정보를 그 안에 값으로 저장하는 컨테이너입니다. 다음은 변수 구문입니다.

 Variable_name =value  

변수(Variable)는 가변(variable) + 가능(able)이라는 두 단어가 결합된 형태로, 그 값이 변경될 수 있고 여러 번 사용할 수 있다는 의미입니다.

변수는 정수, 부동 소수점, 문자 등과 같은 모든 종류의 데이터에 대한 임시 저장소로 알려져 있습니다. 변수 이름에는 다음이 포함될 수 있습니다. 알파벳, 숫자, 밑줄 , 이름은 알파벳과 밑줄로만 시작할 수 있습니다.

참고: 숫자로 시작하는 변수 이름을 정의할 수 없습니다.

Bash 변수란 무엇입니까?

적절한 정보가 없으면 bash 변수를 사용할 수 없습니다( 구문, 데이터 유형, 유형, 작업 ) 이에 대해 Bash 변수에 대한 적절한 개요를 얻기 위해 이 간단한 튜토리얼을 살펴보겠습니다.

먼저 구문을 알아보세요.

통사론:

 Variable_name=value  

Bash 변수 정의를 위한 규칙 세트:

  1. 변수를 읽거나 인쇄할 때 변수 이름 앞에 달러($) 기호를 붙입니다.
  2. 변수에 값을 설정하는 동안 달러 기호($)를 사용하지 마세요.
  3. 변수 이름은 영숫자일 수도 있고 밑줄(_)로 작성할 수도 있습니다.
  4. 변수 이름은 대소문자를 구분합니다. x와 X는 두 개의 다른 변수로 간주됩니다.
  5. 변수 이름은 UPPER_CASE 또는 LOWER_CASE 문자로 작성하거나 원하는 대로 둘을 혼합하여 작성할 수 있습니다.
  6. 변수는 Bash 스크립트나 명령줄 어디든 배치할 수 있습니다. 런타임 시 Bash는 이를 할당된 값으로 대체하기 때문입니다. 명령을 실행하기 전에 대체를 수행했기 때문에 가능해졌습니다.
  7. 변수 이름과 해당 값 사이의 등호(=) 양쪽에 공백이 있어서는 안 됩니다. 다음은 몇 가지 예입니다. 잘못된 변수 아래와 같이 공백(점으로 표시됨...)이 있습니다.
    var1=...변수1
    var2...=변수2
    var3...=...변수3
  8. 다음과 같은 단일 문자 값으로 변수를 정의하기 위해 작은 따옴표나 큰 따옴표를 사용할 필요가 없습니다. var1=변수 . 여러 단어나 문자열을 변수의 단일 항목으로 입력하려면 해당 변수에 내용을 묶는 데 따옴표를 사용하세요.
    • 작은따옴표('')는 모든 문자를 처리하는 데 도움이 됩니다.
    • 큰따옴표('')는 대체를 수행하는 데 도움이 됩니다.

데이터 유형

공식 프로그래밍 언어에서는 변수 선언 시 모든 변수의 데이터 유형을 정의해야 합니다. 예를 들어:

 int year=2012 char comp_name='jtp'  

하지만 Bash의 경우 변수 선언시 어떤 변수의 데이터 타입도 정의할 필요가 없습니다. 배쉬 변수는 유형이 지정되지 않은 , 즉 값을 할당하여 변수 이름을 입력하면 해당 데이터 유형이 자동으로 고려됩니다.

따라서 변수에 숫자 값을 할당하면 정수로 작동하고 변수에 문자 값을 할당하면 문자열이 됩니다.

 year=2012 comp_name=jtp  

echo 명령을 사용하여 이름 앞에 $ 기호를 할당하여 읽습니다.

$년 에코
$name을 에코합니다.

Bash 변수 유형

쉘이나 UNIX 시스템에는 두 가지 유형의 변수가 있습니다.

  1. 시스템 정의 변수
  2. 사용자 정의 변수

1. 시스템 정의 변수: 이는 LINUX 운영 체제 자체에서 생성되고 유지 관리되는 사전 정의된 변수입니다. 표준 규칙은 일반적으로 대문자(예: UPPER_CASE)로 정의된다는 것입니다. 따라서 대문자로 정의된 변수를 볼 때마다 시스템 정의 변수일 가능성이 높습니다.

이는 아래와 같이 시스템 정의 변수입니다.

1. 배쉬 쉘 이름을 나타냅니다.

예:

 BASH=/usr/bin/bash  

2. BASH_버전 Bash가 보유하는 쉘 버전을 지정합니다.

예:

 BASH_VERSION=4.2.46(2)  

3. 기둥 번호를 지정하십시오. 화면의 열 수입니다.

예:

 COLUMNS=80  

4. 집 사용자의 홈 디렉터리를 지정합니다.

예:

 HOME=/home/jatpoint  

5. 로그 이름 로깅 사용자 이름을 지정합니다.

예:

 LOGNAME=javatpoint  

6. OS 유형 OS의 종류를 알려줍니다.

예:

 OSTYPE=linux-gnu  

7. 장애인 현재 작업 디렉토리를 나타냅니다.

예:

 PWD=/home/javatpoint  

8. 사용자 이름 현재 로그인한 사용자의 이름을 지정합니다.

예:

 USERNAME=javatpoint  

시스템에서 이러한 변수의 목록을 확인하려면 다음 명령을 입력하십시오. 설정, 환경 , 그리고 printenv 명령줄 터미널에서 다음과 같이 하세요.

1. 입력 세트 명령.

산출:

배쉬 변수

2. 입력 환경 명령

산출:

배쉬 변수

3. printenv 명령 입력

산출:

배쉬 변수

Bash Shell을 통해 이러한 변수를 호출해 보겠습니다. 다음은 주어진 단계입니다:

1 단계: Bash_sdvar라는 이름의 스크립트를 생성하고 다음과 같이 Bash 콘솔에 다음 코드를 입력합니다.

 #! /bin/bash # Bash System-defined Variables echo $HOME # Home Directory echo $PWD # current working directory echo $BASH # Bash shell name echo $BASH_VERSION # Bash shell Version echo $LOGNAME # Name of the Login User echo $OSTYPE # Type of OS  

2 단계. 아래에 제공된 Bash 콘솔을 살펴보십시오.

배쉬 변수

3단계. 스크립트를 저장하고 실행합니다. 아래 그림과 같이 출력이 표시됩니다.

산출:

배쉬 변수

2. 사용자 정의 변수: 이러한 변수는 사용자가 만들고 유지 관리합니다. 일반적으로 이러한 유형의 변수는 LOWER_CASES에 정의됩니다. 이러한 변수를 소문자로 작성하는 데 대한 엄격한 규칙은 없습니다. 대문자로도 쓸 수 있습니다.

이러한 변수를 정의하는 Bash 스크립트를 만들어 보겠습니다. 아래 주어진 단계를 따르십시오:

1 단계. 이름이 다음과 같은 스크립트를 만듭니다. bash_yard Bash 콘솔에 다음 코드를 입력하세요.

 #! /bin/bash # User-Defined Variables name=Peter ROLL_NO=5245325 echo 'The student name is $name and his Roll number is $ROLL_NO.'  

2 단계. Bash 콘솔의 코드를 참조하세요.

배쉬 변수

3단계. 스크립트를 저장하고 실행합니다.

산출:

배쉬 변수

Bash 변수 작업

변수에 대한 기본적인 데모를 마친 후 변수가 어떻게 작동하는지 알아볼까요?

아래와 같이 Bash에서 변수에 대해 일반적으로 수행하는 두 가지 작업이 있습니다.

  • 값 설정 변수의 경우
  • 가치를 읽는다 그것을 위해.

변수 값은 다양한 방법으로 설정할 수 있으며 가장 일반적인 방법은 값을 직접 설정하는 것입니다. 변수를 읽으려면 스크립트의 아무 곳에나 해당 이름($ 기호 접두사)을 배치할 수 있습니다.

Bash는 먼저 모든 변수 이름이 스크립트에 있는 것처럼 확인합니다. 그런 다음 스크립트의 모든 줄을 해석합니다. 모든 변수를 식별한 후 변수 이름을 할당된 값으로 바꿉니다. 결국, 이는 해당 코드 줄을 해석/실행하고 스크립트의 모든 코딩된 줄에 대해 이 프로세스를 계속합니다.

참고: Bash(우리가 논의한)의 두 종류의 변수는 터미널과 Bash 스크립트 모두에서 작동합니다. 간단한 예를 통해 터미널과 Bash에서의 작업을 살펴보겠습니다.

예: XYZ, 현재 작업 중인 위치, Bash 스크립팅에 사용 중인 Bash Shell 버전으로 사용자 이름을 호출합니다.

1. 터미널 작업

배쉬 변수

2. Bash 쉘 작업

아래에 제공된 Bash_Var라는 이름의 스크립트를 참조하세요.

배쉬 변수

3에서는 rd 스크립트의 줄 , 우리는 변수를 선언했습니다 사용자 이름 사용자 이름을 저장하려면 XYZ 그 가치로.

마지막 두 줄에는 , 우리는 다음을 사용하여 의도한 메시지를 인쇄했습니다. 에코 명령.

이 메시지에는 두 개의 변수와 하나의 명령이 있습니다. 각 항목 앞에는 달러($) 기호가 붙습니다.

    사용자 이름 사용자 이름을 호출하기 위한 사용자 정의 변수입니다. BASH_VERSION 쉘이 자신을 호출하는 시스템 정의 변수입니다. Bash Shell 버전을 인쇄하는 데 사용됩니다. 장애인 명령은 사용자의 현재 위치를 인쇄하는 데 사용됩니다.

더 나은 이해를 위해 주어진 코드에 따라 이 스크립트를 작성하십시오.

 #! /bin/bash #Bash Variables USER_NAME=XYZ echo Hey there! $USER_NAME is any user currently working on the directory $PWD with Bash Shell Version $BASH_VERSION.  

다음 이미지에서 볼 수 있는 것처럼 출력이 표시됩니다.

산출:

배쉬 변수

터미널과 Bash Shell 모두에서 변수를 연습하는 데 대한 몇 가지 예가 더 있습니다. 다음을 수행하여 규칙 세트 (이전에 논의됨) 다음과 같이 변수에 대한 연습을 하십시오:

A. 명령줄 터미널 사용

1. 변수 설정

배쉬 변수

2. 변수 읽기 및 참조

배쉬 변수

3. 유효하지 않은 변수

배쉬 변수

4. 두 개의 문자열 변수 결합

배쉬 변수

5. 문자열을 변수와 연결하기

배쉬 변수

참고: 두 변수를 결합할 때나 문자열을 변수와 연결할 때 작은따옴표를 사용하지 마십시오. 따라서 문자열을 작은따옴표로 묶어서 연결하면 아래 이미지에서 볼 수 있듯이 문자열을 읽을 수 없게 됩니다.

배쉬 변수

B. Bash 스크립트 사용:

이는 다음의 예이다. 문자열 변수를 결합합니다.

배쉬 변수

산출:

배쉬 변수

명령줄 인수

명령줄 인수는 입력을 코드에 전달하여 스크립트를 더욱 동적으로 만드는 데 사용됩니다. 스크립트 실행 시 이러한 인수를 다음 형식으로 전달합니다.

 ./script_name arg1 arg2 arg3.....  

스크립트 이름과 전달하는 모든 인수 사이에는 공백이 없어야 합니다.

명령줄 인수를 사용하는 방법은 무엇입니까?

Bash Shell에서는 다음 기본 매개변수 또는 특수 변수를 참조하여 사용됩니다.

    $0 호출할 스크립트의 이름을 지정합니다. $1-$9 처음 9개 인수의 이름을 저장하거나 인수 위치로 사용할 수 있습니다. $# 스크립트에 전달된 인수의 총 수(개수)를 지정합니다. $* 모든 명령줄 인수를 함께 결합하여 저장합니다. $@ 인수 목록을 배열로 저장합니다. $? 현재 스크립트의 프로세스 ID를 지정합니다. $$ 마지막 명령 또는 가장 최근 실행 프로세스의 종료 상태를 지정합니다. $! 마지막 백그라운드 작업의 ID를 표시합니다.

다음은 명령줄 인수를 전달하는 데 사용하는 두 가지 방법입니다.

방법 1: 포지션 번호 사용

이는 기본 매개변수($1...$9)를 사용하여 인수에 액세스하는 첫 번째 방법입니다. 아래 이미지에서 설명합니다.

배쉬 변수

산출:

배쉬 변수

방법 2: 배열 사용.

인수를 배열로 전달하는 두 번째 방법입니다. 이 방법을 적용하려면 주어진 알고리즘을 따르십시오.

1 단계: Bash 스크립트를 만듭니다.

2 단계: 변수 이름을 선언하고 해당 값을 다음과 같이 할당합니다. $a 다음과 같은 형식으로:

 variable_name=('$@')  

어디 $@ 인수(우리가 전달함)를 배열로 저장하는 데 사용되는 기본 인수입니다.

3단계: 다음 형식으로 배열 인덱스를 정의하여 인수를 표시합니다.

 ${variable_name[i]}  

4단계: 스크립트를 저장하고 닫습니다.

5단계: 인수를 전달하여 스크립트를 실행합니다.

다음 프로그램을 참조하세요:

프로그램:

 #!/bin/bash args=('$@') echo ${args[0]} ${args[1]} ${args[2]} ${args[3]}  

Bash 콘솔에서:

배쉬 변수

산출:

배쉬 변수

명령 대체

Bash 공식 문서에 따르면

'명령 대체를 사용하면 명령의 출력이 명령 자체를 대체할 수 있습니다. Bash는 하위 쉘 환경에서 명령을 실행하고 명령 대체를 명령의 표준 출력으로 바꾸고 후행 줄 바꿈을 삭제하여 확장을 수행합니다. 삽입된 줄바꿈은 삭제되지 않지만 단어 분할 중에 제거될 수 있습니다.'

명령 대체는 Bash가 우리를 위해 수행하는 확장을 나타냅니다. Bash 명령의 출력을 가져와서 (일반적으로) 변수에 저장하고 에코와 함께 다시 표시합니다.

명령 대체 스크립팅 및 변수 할당과 관련하여 데이터 유연성을 제공합니다. 단일 명령줄 출력이 간단하고 쉽습니다. 출력이 몇 줄을 넘어가는 경우 새로 뒤따르는 줄이 제거되고 출력의 전체 내용이 한 줄로 끝납니다.

사용 구문을 참조하세요.

통사론

변수 또는 명령 대체에서 명령을 대체하는 전형적인 형태는 아래와 같이 역따옴표(`...`)를 사용하는 것입니다.

 variable_name=`command_name` variable_name=`command_name [option...] argument1 argument2...` variable_name=`/path/to/command`  

이제 명령을 대괄호(앞에 달러 기호($))로 묶어 명령 대체를 수행합니다. 보세요:

 variable_name=$(command_name) variable_name=$(command_name [option...] argument1 argument2...) variable_name=$(path/to/command)  

이제 토론에 따라 예제를 사용하여 명령 대체를 수행해 보겠습니다.

이 예에서는 변수에 단일 명령 ls를 대체합니다. 터미널을 참조하세요.

배쉬 변수

라인 1: 명령 대체가 없으면 출력이 여러 줄로 확장됩니다.

2호선과 3호선: 명령 대체를 사용하면 출력이 단일 라인으로 종료됩니다(새로 뒤따르는 라인을 제거하여 공간이 절약됨).

다음은 명령 대체를 테스트하는 Bash 스크립트입니다.

프로그램:

 #! /bin/bash # command substitution lsResult=$(ls) echo 'My files are:' $lsResult  

Bash 콘솔을 참조하세요:

배쉬 변수

산출:

배쉬 변수

마음에 드실지도 몰라요