"$?"를 사용할 때 bash 스크립트의 표현식

"$?"를 사용할 때 bash 스크립트의 표현식

간단한 bash 스크립트를 작성 중입니다.

#!/bin/bash

ls xyzzy.345 > /dev/null 2>&1
status =' echo $?'
echo "status is $status"

파일을 찾고 xyzzy.345결과를 에 기록합니다 /dev/null. 그러나 해당 줄에 관해서는 status =' echo $?'다음 오류가 발생합니다.

status: Unknown job: = echo $?

하지만 echo $?터미널에서는 인식됩니다.

누구든지 나를 도와줄 수 있나요? 내 운영 체제는 우분투 12.04 LTS입니다.

답변1

status와 사이에 추가 공백이 있습니다 =. 불다변수 할당이름과 기호 사이에는 공백이 필요하지 않습니다 =.

status='echo $?'

당신이 작성하고 있는 것은 status단일 인수로 명령을 호출하는 것 입니다 =' echo $?'.


요약하자면, 당신이 쓰고 싶은 내용은 다음과 같습니다:

status=$?

값을 변수 $?에 저장합니다.status

실제 코드가 좀 더 복잡하고 명령을 실행하고 값을 저장하려면 다음 방법 중 하나를 사용하십시오.

status=`echo "$?"`
status=$(echo "$?")

이들은 사용명령 대체명령 출력에 액세스합니다.

관련 정보