问题描述
我对 bash 脚本很陌生,但我正在尝试编写此脚本以努力学习 bash/让我的生活更轻松。标题基本上说明了一切,下面是有问题的代码片段。
diff gt 75 groupby any negation
0 NaN False False True
1 -8.802 False False True
2 1.742 False False True
3 1.275 False False True
4 11.884 False False True
5 -13.670 False False True
6 -3.829 False True False
7 1.189 False True False
8 1.218 False True False
9 14.185 False True False
10 104.246 True True False # Spike of more than 75
11 -114.448 False True False
12 -6.551 False True False
13 38.890 False True False
14 -37.124 False True False
15 29.124 False True False
16 187.220 True True False # Spike of more than 75
除了下面的 vm_setup.sh 片段之外,我还有几条日志消息在日志消息中调用了 $vm。他们省略了 $vm 变量并读取类似于“编辑接口配置文件以作为主机地址”的内容。
作为 bash 的新手,我觉得我对如何在 bash 脚本中实现标志有一个根本的误解。我一直在阅读如何执行我将添加的输入验证,但我找不到任何关于为什么我的脚本没有正确接受我给出的前两个标志的任何信息。我很想得到有关此脚本的一些帮助,但最终我想了解我做错了什么。
[root@vlab024200 ~]# ./vm_setup.sh "vlab024200" "5.0_SP1"
./vm_setup.sh: line 6: =vlab024200: command not found
./vm_setup.sh: line 9: =10.204.128.28: command not found
./vm_setup.sh: line 10: =AC_or_IDP: command not found
解决方法
删除那些 $ 符号。只有在代码中再次使用这些变量时,才需要添加美元符号。
#!/bin/bash
# This script configures the hostname,hosts and interface cfg file.
# After the network is configured the VM is then registered installs
# wget,vim downloads NAM and restarts VM
# define values unique to this machine
$vm=$1
case $1 in
vlab024200)
newIP="10.204.128.28"
role=AC_or_IDP
;;
vlab024201)
newIP="10.204.128.29"
role=AC_or_IDP
;;
vlab024202)
newIP="10.204.128.30"
role=AC_or_IDP
;;
vlab024203)
newIP="10.204.128.31"
role=AG
;;
vlab034305)
newIP="10.204.130.175"
role=AG
;;
esac