[unix] “then”을 대괄호로 대체 할 수 있습니까?

먼저 C언어 로 코딩하는 방법을 배웠습니다.

if ( code )
then
code
fi

내 코드를 읽는 것이 정말로 어렵습니다 (왜 묻지 마십시오). 대체품이 then있습니까?

이 같은:

if ( code ) {
 code
}
fi



답변

대체물은 없지만 중괄호가 정말로 필요한 경우 두 가지를 모두 사용할 수 있습니다.

if true ; then {
    something
} fi

불필요한 명시 적 괄호 명령 그룹then블록 의 본문으로 사용합니다 . 괄호가없는 것처럼 괄호 안의 명령은 실행시 현재 셸에서 then실행됩니다.

나는이 스타일을 일반적으로 또는 다른 사람이 읽을 필요가있는 코드에 대해 권장하지는 않지만 원하는 괄호를 제공하며 괄호 블록이 필요한 편집기를 사용하는 경우 트릭을 수행합니다. 그런 것.


답변

당신이 찾고있는 것 같다 C 쉘 ( csh, tcsh, 등 …). 전문가들은 프로그래밍을 위해 그것을 추천하지 않는다는 것을 명심하십시오 .

당신이 호소력이 없다고 생각하는 부분이 then다음 줄에 있는지 여부를 잘 모르겠습니다 . 그렇다면 다음 스타일 사용을 고려하십시오.

if condition; then
    stuff
fi

나는 뒤로처럼 그 맞춤법 문 이름을 인정해야 fi에 대한 ifesac대한 case(하지만 elihw대한 while종류의 황당하다!). 그러나 이것이 가장 휴대 성이 뛰어난 쉘 구문 인 표준 Bourne 쉘입니다.


답변

어쩌면 이것이 눈에 더 좋을 수도 있습니다.

[ condition ] && {
   # statement 1
   # statment 2
   # ...
}

그 외에는 익숙해 지십시오. 언어 관용구를 사용하십시오.


답변

다음은 근처에 있습니다. 그리고 이상하다.

: if; { code; } && {
    code
}

나는 개인적으로 좋아하지 않았다 …

if true; then
more;fi

… 나 자신을 형성하십시오. 나는 제어 단어가 이끌 때 그것을 좋아한다 . 우세한 ...;then형식이 생겨난 것은 항상 이상하게 보였습니다 .

if    this && that
then  do these things too
else  i will probably get upset
fi

그것은 귀하의 요청과 거의 반대이지만, 다른 방법입니다. fi필요 에 따라 원하는 리디렉션을 라인 에 고정 할 수 있으며 전체 블록에 적용됩니다.


답변

방법은 다음과 같습니다.

[ "$var" = "find" ] && echo "found"

다음과 같습니다.

if [ "$var" = "find" ]; then
  echo "found"
fi


답변

나는 항상 사용합니다 :

if (code); then
   code;
fi

아마 정확히 당신이 원하는 것은 아니지만 조금 더 비슷합니다.


답변