명령이 성공했는지 확인하는 Linux 쉘 스크립트

명령이 성공했는지 확인하는 Linux 쉘 스크립트

실행된 명령이 성공했는지 여부를 확인해야 합니다. test.sh에 다음 코드를 넣어 실행했는데 내용이 나열되지만 /home경고가 표시 됩니다.

./test.sh: 3: ./test.sh: [[: not found

다음 명령의 문제점

#!/bin/sh
ls /home/
if [[ "$?" != 0 ]]; then
echo "Commnad Error"
else
echo "Commnad Success"
fi

답변1

오류에 따르면:

./test.sh: 3: ./test.sh: [[: not found

귀하의 것은 bash와 관련이 /bin/sh없습니다 . 단일 대괄호를 사용 하거나 명령만 사용하십시오. 숫자 조건 에도 사용할 수 있습니다 . 특정 사례에는 효과가 있지만 이는 나쁜 습관입니다.bash[[[test
-ne!=

답변2

오류가 발견되었습니다if [[ "$?" != 0 ]]; then

수치 비교는 사용되는 것이 아니라 !=사용 -ne되어야 합니다.

수치 비교를 위해 여기를 읽어보세요

또한 마지막으로 실행된 명령의 종료 코드 상태에 대한 올바른 구문은 $?따옴표가 없습니다.

if [[ $? -ne 0 ]]; then

답변3

나는 당신이 그런 경고를 사용할 수 있기 때문에 dash스크립트를 실행하는 데 사용하고 있다고 생각합니다./bin/shlinkbash#!/bin/bash

답변4

대시는 없고 [[오직 [. 하지만 있다 하더라도 선택할 [이유가 있습니다 . (전자는 더 직접적이고 빠르며 패턴의 결함에 적응할 수 있습니다).if your_commandyour_command; if [ $? = 0 ]set -e

관련 정보