답변:
쉘에서 no-op 명령은 :
(콜론)입니다.
if [ "$a" -ge 10 ]
then
:
elif [ "$a" -le 5 ]
then
echo "1"
else
echo "2"
fi
로부터 bash는 설명서 :
:
(콜론)
인수를 확장하고 리디렉션을 수행하는 것 외에는 아무것도하지 마십시오. 반환 상태는 0입니다.
:
팀의 누군가가 작성한 경우 언어를 변경해야합니다.
true
맥락에서 사용한다면 , 나는 그것들을 바꾸게 할 것입니다. if true
괜찮아요, then true
잘못된 것 같습니다.
if ! condition; then do something; fi
대신 사용할 코드를 간단히 다시 작성할 수 있습니다 if condition; then :; else do something; fi
.
아마도 다음 true
명령을 사용할 수 있습니다 .
if [ "$a" -ge 10 ]; then
true
elif [ "$a" -le 5 ]; then
echo "1"
else
echo "2"
fi
대안으로, 귀하의 예제 경우 (그러나 반드시 모든 곳은 아님) if / else를 다시 주문하는 것입니다.
if [ "$a" -le 5 ]; then
echo "1"
elif [ "$a" -lt 10 ]; then
echo "2"
fi
true
와 false
효과적으로까지 스크립트에 관한 한 어떠한 작전 없지만, 원칙적으로 그들은 수 그래서 아마도이 구문을 받아 일부 포탄에 포크 :
낫다.
true
되어 false
있습니다. 구형 쉘의 경우, true
, false
, 심지어 :
외부 명령 수 있습니다 (당신은 아마 단지 후자 볼 수있을 거라고하지만 아주 오래된 껍질).
:
의도가 무엇인지 더 명확하기 때문에 단순히 선호합니다
no-op 명령과 관련하여 원래의 질문에 대답하지는 않지만 " 이 지점에서 아무 것도 할 필요가 없다 "고 생각할 수있는 많은 (대부분은 아니지만) 문제 는 단순히이 지점을 얻 도록 논리 를 재구성하여 우회 할 수 있습니다. 발생하지 않습니다.
OPs 예제를 사용하여 일반적인 규칙을 제시하려고합니다.
$ a가 "10"보다 크면 아무 것도하지 말고 $ a가 "5"보다 작 으면 "1"을 인쇄하고, 그렇지 않으면 "2"를 인쇄하십시오
우리는 일반적인 조건이 조건에 따라 서로에게 적용될 수 $a
있기 때문에 10을 초과 하는 지점을 피해야합니다 $a < 10
.
일반적으로 X 일 때 아무 것도 말하지 않으면 X가 있는 지점 을 피하기 위해 문구 를 바꾸십시오 . 일반적으로 X를 무시하고 다른 모든 조건에 적용하여 회피를 수행 할 수 있습니다.
따라서 규칙이 적용된 OP 예제는 다음과 같이 재구성 될 수 있습니다.
if [ "$a" -lt 10 ] && [ "$a" -le 5 ]
then
echo "1"
elif [ "$a" -lt 10 ]
then
echo "2"
fi
$a < 10
조건의 모든 것을 묶는 위의 변형 일뿐입니다 .
if [ "$a" -lt 10 ]
then
if [ "$a" -le 5 ]
then
echo "1"
else
echo "2"
fi
fi
(이 특정 예제의 경우 @Flimzys 구조 조정 이 더 낫지 만 모든 사람들이 아무것도하지 않는 방법을 검색하는 일반적인 규칙을 부여하고 싶었습니다.)
echo "put stuff here"
로그인하지 않은 일부 사용이 중단되고 (예 : scp가 손상됨) 공백 / 설명만으로 런타임 오류가 발생합니다.
true
. 그것은 껍질에 내장되어 있으며 아무것도하지 않습니다.