이중 괄호 안의 변수 확장

이중 괄호 안의 변수 확장

저는 bash 5.0.7을 사용하고 있으며 대괄호 안의 변수 합계를 확장할 수 있었으면 좋겠습니다 And="&&".Or="||"

$ [[ 1 > 0 $And 1 < 0 ]] 
bash: syntax error in conditional expression
bash: syntax error near `$And`
$ [[ 1 > 0 ${And} 1 < 0 ]] 
bash: syntax error in conditional expression
bash: syntax error near `${And}`

내 코드를 크게 단순화할 수 있는 방법이 있었으면 좋겠습니다. 또한 어떤 설명이라도 높이 평가하겠습니다. 정말 궁금합니다 sh/어떻게 bash작동하는지 궁금합니다! 미리 감사드립니다.

답변1

test내장된 [and -a(for &&) 및 -o(for )와 함께 작동 ||합니다 .

$ and_or=-a
$ [ 1 -gt 0 $and_or 1 -lt 0 ] && echo yes || echo nope
nope
$ test 1 -gt 0 $and_or 1 -lt 0 && echo yes || echo nope
nope
$ and_or=-o
$ [ 1 -gt 0 $and_or 1 -lt 0 ] && echo yes || echo nope
yes
$ test 1 -gt 0 $and_or 1 -lt 0 && echo yes || echo nope
yes

(Bash 3.2.57/4.4.12/5.0.3으로 테스트됨)

댓글에서 지적했듯이 >사전 비교 연산자 합계를 산술 버전 합계로 대체했습니다.<-gt-lt

하지만 이건 진짜 해킹이라고 말하고 싶습니다...

관련 정보