fhname=$ (eval echo \$${cibdqh})
时间: 2023-09-05 12:12:03 浏览: 130
这是一个Shell脚本语句,其中`${cibdqh}`是一个变量,`${}`表示引用变量的值。`eval`命令会执行字符串中的shell命令,因此`echo \$${cibdqh}`实际上会输出`${cibdqh}`变量的值,并将`$`符号转义。最后,`$()`表示将命令的输出作为一个字符串返回,因此`fhname`将被赋值为`${cibdqh}`变量的值。
相关问题
#!/bin/bash source /opt/applications/cpos-monitor-agent/keys/main.sh # 定义两个curl命令 curl_command1="curl -s -u 'admin:Magic4u@mq' http://101.1.1.12:15672/api/cluster-name" curl_command2="curl -s -u 'admin:Magic4u@mq' http://101.1.1.13:15672/api/cluster-name" # 执行第一个curl命令 curl_output1=$(eval "$curl_command1") # 检查第一个curl是否成功 if [ $? -eq 0 ]; then # 提取cluster-name字段的值 cluster_name=$(echo "$curl_output1" | awk -F'"' '{print $4}') # 暴露指标 echo "rabbitMQ_status{$cluster_name} 1" exit 0 fi # 执行第二个curl命令 curl_output2=$(eval "$curl_command2") # 检查第二个curl是否成功 if [ $? -eq 0 ]; then # 提取cluster-name字段的值 cluster_name=$(echo "$curl_output2" | awk -F'"' '{print $4}') # 暴露指标 echo "rabbitMQ_status{$cluster_name} 1" exit 0 fi 结果是rabbitMQ_status{rabbit@bjn229_boxvm} 1 把@去掉
你可以使用sed命令来去掉输出结果中的@符号。请使用以下命令:
```bash
result="rabbitMQ_status{rabbit@bjn229_boxvm} 1"
fixed_result=$(echo "$result" | sed 's/@//g')
echo "$fixed_result"
```
这将输出修正后的结果:
```
rabbitMQ_status{rabbitbjn229_boxvm} 1
```
MY_PID=$(eval "$COMMAND" & echo $!)
这行命令的作用是执行 $COMMAND 命令,并将其进程的PID保存到变量 $MY_PID 中。具体来说,该命令会先执行 $COMMAND 命令,并在后台运行,然后使用 shell 内置变量 $! 获取该进程的 PID,并将其赋值给变量 $MY_PID。这样做可以让你在后续的脚本中方便地管理和控制该进程。