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

呃,很酷的想法。 非常感谢你
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是最好的。 然而,它变得难以读/调试。
为什么不使用一种详细的解决方案吗?
当两个条件都是真实的,你想要登录的信息。

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