Bash 쉘 스크립트:조건부 연결 문자열

0

질문

내가 원하는 조건에 따라 제출한 텍스트를 다른 쉘 스크립트입니다. 의미를 나는 바꾸려는"경고"를 경우에 deb=1"정보":

#!/usr/bin/env bash
...
if [[ $abc -lt 98 ]] || [[ $deb -eq 1 ]]
then 
    ./discord.sh --webhook-url=$url --text "WARNING: $abc"
fi

하고 싶을 피하는 또 다른 경우에는 문입니다. 제가 기대하는 무언가가 있음

deb=1 ? "INFO" : "WARNING"

효과가 있을까? 그렇다면,어떻게 다음과 같이 보이는가? "--텍스트를..."

사전에 감사합니다.

bash debian raspberry-pi scripting
2021-11-22 10:27:36
4

최고의 응답

0

으로 할 수 있는 배열 색인을 일치 숫자 로그 수준 이름의 문자열:

#!/usr/bin/env bash

url=https://example.com/hook

logLevel=(WARNING INFO)

for abc in 97 98; do
  for deb in 0 1; do
    printf 'abc=%d, deb=%d:\n' $abc $deb
    (((i = 1 == deb) || 98 > abc)) &&
      echo ./discord.sh --webhook-url=$url --text "${logLevel[i]}: $abc"
  done
done

출력:

abc=97, deb=0:
./discord.sh --webhook-url=https://example.com/hook --text WARNING: 97
abc=97, deb=1:
./discord.sh --webhook-url=https://example.com/hook --text INFO: 97
abc=98, deb=0:
abc=98, deb=1:
./discord.sh --webhook-url=https://example.com/hook --text INFO: 98
2021-11-22 14:27:12

uh,정말 멋진 아이디어입니다. 감사
bivvo

if [[ $abc -lt 98 ]] || [[ $deb -eq 1 ]] 는 경우에도 마찬가지입니다 abc==100deb==1. 를 제거할 수 있습니다. echo.
Walter A
0

을 의미가 이것을 좋아하는가?

 [[ $abc -lt 98 ]] && {
   ./discord.sh --webhook-url=$url --text "$([[ $deb -eq 1 ]] && echo "INFO" || echo "WARNING"): $abc"
 }

이라고 생각하는 대안 if then else fi (중괄호 안에만 앱에는 비가족용 콘텐츠가 포함이 있는 경우 추가 명령하지만,저는 그것을 사용하려면 어쨌든,가독성(경우에 따라서).

기본적으로 그

[[ condition ]] && { commands if true } || { commands if false }

2021-11-22 11:37:38

abc==100deb==1 또한 원하는 통화 discord.sh
Walter A

그래요,이 하나의 작품에 대한 저: $([[ $deb -eq 1 ]] && echo 'INFO' || echo 'WARNING')
bivvo

감사
bivvo
0

당신을 시도하십시오:

if (( abc < 98 || deb == 1 )); then
    loglevel=$( (( deb == 1 )) && echo "INFO" || echo "WARNING" )
    ./discord.sh --webhook-url=$url --text "$loglevel: $abc"
fi
2021-11-22 11:11:24

아주 좋아 보인다,당신을 감사하십시오!
bivvo

내가 잊어 놓 echo 명령에 대한 시험 목적이 있다. 지금은 고정되어 있습니다.
tshiono

감사
bivvo
0

이럴의 대답@tshiono 최고입니다. 그러나,그것은 하드 읽기/debug.
왜 사용하지 않는 자세한 솔루션?
을 때 두 가지 조건이 모두 사실,당신이 원하는 로그인 정보.

if ((deb==1 )); then 
  ./discord.sh --webhook-url="$url" --text "INFO: $abc"
elif ((abc < 98)); then
  ./discord.sh --webhook-url="$url" --text "WARNING: $abc"
fi
2021-11-22 11:05:00

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................