Bash

[Bash] 커맨드 서브스텔링

인공지능하마 2023. 10. 28. 13:57
반응형

커맨드 서브스텔링은 다른 명령의 출력을 변수에 할당하고 활용하는 기술입니다. 이를 통해 스크립트에서 명령 실행 결과를 변수로 저장하고 조작할 수 있습니다. 다음은 커맨드 서브스텔링을 활용한 고급 팁과 예제입니다.

1. 명령 실행 결과 변수에 할당:

$() 구문을 사용하여 명령 실행 결과를 변수에 할당할 수 있습니다.

예제: 현재 디렉토리의 파일 목록을 변수에 할당

#!/bin/bash

file_list=$(ls)
echo "Files in the current directory: $file_list"

 



2. 명령의 표준 출력 및 표준 오류를 분리:

$() 구문을 사용하여 명령의 표준 출력 및 표준 오류를 분리하여 서로 다른 변수에 저장할 수 있습니다.

예제: 명령 실행 결과와 오류를 분리하여 변수에 저장

#!/bin/bash

command_output=$(ls non_existent_directory 2>&1)

echo "Command output:"
echo "$command_output"

error_message=$(2>&1 echo "$command_output")

echo "Error message:"
echo "$error_message"

 


3. 명령 실행 결과를 조작:

커맨드 서브스텔링을 사용하여 명령 실행 결과를 변수에 저장하고 나중에 조작할 수 있습니다.

예제: 명령 실행 결과에서 특정 문자열 검색

#!/bin/bash

file_list=$(ls)

if [[ "$file_list" == *"example.txt"* ]]; then
    echo "example.txt found in the current directory."
else
    echo "example.txt not found in the current directory."
fi

 


4. 명령 실행 결과를 반복:

커맨드 서브스텔링을 사용하여 명령 실행 결과를 배열에 저장하고 반복할 수 있습니다.

예제: 파일 목록을 배열에 저장하고 반복

#!/bin/bash

file_list=($(ls))

echo "Files in the current directory:"
for file in "${file_list[@]}"; do
    echo "$file"
done

 

반응형