비교 연산자를 사용하여 쉘 스크립트에서 긴 줄 바꾸기

비교 연산자를 사용하여 쉘 스크립트에서 긴 줄 바꾸기

내 Bash 코드에서는 때때로 "OR"을 테스트하기 위해 비교 연산자에 긴 인수를 사용합니다.

다음과 같이:

if [[ $production_check_linux_disks_quantity == false  ]] || [[ $production_linux_mount_point_reference_to_ambari_definition == false ]] || [[ $production_check_linux_mount_point_quantity == false ]] || [[ $production_show_linux_disks_simulation == false ]]
then

문제는 구문이 너무 길고 보기 흉하다는 것입니다.

더 짧고 우아하게 만드는 방법에 대한 아이디어가 있습니까?

답변1

에서 줄을 끊을 수 있습니다 ||. 사실 이 줄은 언제든지 끊을 수 있습니다.제어 연산자. 따라서 ||, !, &&, &, ;, ;;, |, |&, (또는 ).

이는 귀하의 예에 대한 올바른 구문입니다. 예를 들어 다음이 필요하지 않습니다 \.

if [[ $production_check_linux_disks_quantity == false  ]] || 
   [[ $production_linux_mount_point_reference_to_ambari_definition == false ]] || 
   [[ $production_check_linux_mount_point_quantity == false ]] || 
   [[ $production_show_linux_disks_simulation == false ]]; then
    echo yes
fi

\제어 연산자로 끝나지 않으면 여러 줄을 연결해야 하지만 제어 연산자로 끝나는 경우에는 연결할 필요가 없습니다.

또한, if [[ $var == false ]]변수의 값이 $var문자열 인지 확인하는 false것이므로 로 작성하는 것이 더 나을 것이라는 점을 참고하시기 바랍니다 if [[ $var = 'false' ]]. 귀하의 코드는 $var-1 또는 0이거나 설정되지 않은 경우 true로 평가되기를 원할 수 있음을 제안합니다 .

관련 정보