조건부 오른쪽 (하위)식에서 var 할당

조건부 오른쪽 (하위)식에서 var 할당

할당할 때 변수를 왼쪽에 유지하는 방법을 찾고 있지만 아직 깔끔한 방법을 찾지 못했습니다.

  [[ "${selections[@]}" =~ "${package}" ]] && is_pkg_selected=true || is_pkg_selected=false
  test_package_loaded $package && is_pkg_installed=true || is_pkg_installed=false

  # ideal would be like...
  is_pkg_selected=$([[ "${selections[@]}" =~ "${package}" ]])
  is_pkg_installed=$(test_package_loaded $package && true || false)

어떤 아이디어가 있나요? 여러 줄의 변수를 함께 읽는 것은 매우 어렵습니다.

스크립트는 Raspbian을 실행하는 RaspberryPi에서 실행되므로 가능한 최상의 sh접근 방식을 선호합니다.

답변1

넌 할 수있어

is_pkg_selected=$([[ "${selections[@]}" =~ "${package}" ]] && echo true || echo false)
is_pkg_installed=$(test_package_loaded "$package" && echo true || echo false)

즉, echo변수에 할당할 텍스트를 출력하려면 명령 대체나 이와 유사한 것을 명시적으로 사용해야 합니다. (텍스트 true이고 false문자열만 기억하세요.)

관련 정보