Return 来自网站的变量 Bash 命令

Return variable from website Bash command

我曾经有一个脚本,基本上,return从网站编辑当前温度。这是用 wget 然后 awk 到 return "Temperature" 作为变量然后我用 sox 创建一个文件说温度是等

网站已更改,我无法重新编写它。

这是我的:


URL='https://wttr.in/rhyl'

temp="wget -q  -O- "$URL" | awk -F\' 'data-value/{print  }'| head -1)"

sox -V1 -c 1  silence.wav  base.wav $temp.wav temp-dry.wav

sox -V1 -m temp-bed2.wav temp-dry.wav tempfx.wav
sox -V1 tempfx.wav tempfx+15db.wav vol 9 db
sox -V1 temp-dry.wav temp-dry+10db.wav vol 10 db

到目前为止,我对 sox 位很满意,我似乎无法 return 变量,即 wttr.in

的温度部分的“12”

$temp 的期望输出只是数字,没有特殊字符,即 $temp = 12

temp="wget..." 只是将字符串 "wget..." 存储在变量 temp 中,它不会执行命令 wget... 如果那是你想要的,那么你应该这样做temp="$(wget...)" 代替。尝试 temp="$date"; echo "$temp"temp="$(date)"; echo "$temp" 以查看差异。

这是一个版本 bash 文件,用于更新当前温度和广播电台铃声的音频文件。

#/////Get weather for where you want thanks to  User3439894 and Bengamin W. /////

    temp="$(curl -s https://wttr.in/rhyl?format=%t | grep -Eo [0-9]+)"

#   ////use sox to make the dry file outof pre-defind wav files/////

    sox -V1 -c 1  silence.wav  base.wav $temp.wav temp-dry.wav

#  //// Here I use sox again to create a wav file with start and end jingle /////

    sox -V1 -m temp-bed2.wav temp-dry.wav tempfx.wav

#     //// Using sox again I boost the audio by what is required 15db and 10 db///

     sox -V1 tempfx.wav tempfx+15db.wav vol 9 db
     sox -V1 temp-dry.wav temp-dry+10db.wav vol 10 db

然后我使用 crontab 运行 这个 bash 脚本作为一个 cronjob。

谢谢大家

亚历克斯