小编spe*_*cle的帖子

从多个参数创建循环数组

#!/bin/bash
COUNTER=$#
until [ $COUNTER -eq 0 ]; do
args[$COUNTER]=\$$COUNTER
let COUNTER-=1
done
echo ${args[@]}
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我得到以下结果

user@host:~/sandbox# ./script.sh first second third
$1 $2 $3
Run Code Online (Sandbox Code Playgroud)

而且我期待它回应出1美元,2美元和3美元不是"1美元"的文本值

我正在尝试用bash编写一个脚本,它将创建一个数组,该数组的大小与我给它的参数数量相同.
我期待着

user@host:~/sandbox# ./script.sh alpha bravo charlie
alpha bravo charlie
Run Code Online (Sandbox Code Playgroud)

要么

user@host:~/sandbox# ./script.sh 23425 jasson orange green verb noun coffee
23425 jasson orange green verb noun coffee
Run Code Online (Sandbox Code Playgroud)

所以,目标是制作

args[0]=$1
args[1]=$2
args[2]=$3
args[3]=$4
Run Code Online (Sandbox Code Playgroud)

我拥有它的方式,$1,$2,$3不是插值,而是只是作为文本字符串读取.

arrays bash interpolation loops

22
推荐指数
1
解决办法
5万
查看次数

与if_match和'和'一致

由于我的可搜索关键字的广泛含义,我很难用谷歌搜索并搜索我正在尝试做的事情.

我正在尝试修改我的.conkyrc文件以根据温度更改字体颜色,这需要我写下这样的内容:

if [ $test >="50" and $test <="60"];
Run Code Online (Sandbox Code Playgroud)

我不希望上述内容完全起作用,我知道语法都是错误的,但这是我描述我想要完成的内容的最简单方法

下面是我配置中的一个实际部分,我试图在没有"和"或"或"的情况下进行,但当然,它不能像我希望的那样工作.

${goto 45}${if_match "${platform coretemp.0 temp 2}" >= "115"}${color4}${endif}${if_match "${platform coretemp.0 temp 2}" >= "125"}${color5}${endif}${if_match "${platform coretemp.0 temp 2}" >= "145"}${color6}${endif}${if_match "${platform coretemp.0 temp 2}" >= "155"}${color7}${endif}${if_match "${platform coretemp.0 temp 2}" >= "170"}${color8}${endif}${platform coretemp.0 temp 2}°F
Run Code Online (Sandbox Code Playgroud)

另外,我可以使用带有conky的elseif吗?

${if_match "$test" >="113"}${color4}${elseif "$test1" <="120"}${color5}${endif}
Run Code Online (Sandbox Code Playgroud)

或类似的东西?

if-statement conky

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×1

bash ×1

conky ×1

if-statement ×1

interpolation ×1

loops ×1