간단한 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 "$?")
이들은 사용명령 대체명령 출력에 액세스합니다.