पार्टी की योजना बनाई खोल पटकथा: सशर्त स्ट्रिंग संयोजन

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

उह, बहुत अच्छा विचार है. बहुत बहुत धन्यवाद
bivvo

if [[ $abc -lt 98 ]] || [[ $deb -eq 1 ]] सच है जब abc==100 और deb==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==100 और deb==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

IMHO का जवाब @tshiono सबसे अच्छा है. हालांकि, यह मुश्किल हो जाता है के लिए पढ़ने/डिबग.
क्यों नहीं का उपयोग करें एक वाचाल समाधान है?
जब दोनों स्थितियाँ सत्य हैं, आप चाहते हैं लॉग ऑन करने के लिए जानकारी के साथ.

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ý
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में