Bash: 非法变量名错误
Bash: illegal variable name error
我正在尝试使用 grep 从文本文件中提取字段。我想将行号存储到 bash 变量中以备后用,但出现了非法变量名错误。这是我的脚本的一部分:
#!/bin/csh
set echo
grep -n -m 1 "HR" Tossed/length/TLD2R-TT.txt | cut -d : -f 1
To_Start=$((grep -n -m 1 "HR" Tossed/length/TLD2R-TT.txt | cut -d : -f 1))
这是输出:
[maurerj1@rucc-headnode Tenengolts_Generate]$ ./flow_LBBH.sh 7 0 0 0
grep --color=auto -n -m 1 HR0 Tossed/length7/TL7D2R0-0TT.txt
cut -d : -f 1
1 #This is the right number
Illegal variable name. #why is this not working?
据我所知,bash 变量名中允许使用大写字母、小写字母和下划线,所以我做错了什么?
$(( expr ))
语法用于计算,因此出现令人困惑的消息。
例如:echo $((4+4))
产生 8
你想评估一个命令的结果,简单的括号就可以了:
To_Start=$(grep -n -m 1 "HR" Tossed/length/TLD2R-TT.txt | cut -d : -f 1)
证明我观点的简单复制器:
To_Start=$(echo a:b | cut -d : -f 1)
echo $To_Start
产量:
a
我通过从 csh 更改为 bash、删除 set echo(通过将所有输入变量设为 "echo" 引起了一些奇怪的问题)并从 $(()) 更改为 $ 来解决问题().
我正在尝试使用 grep 从文本文件中提取字段。我想将行号存储到 bash 变量中以备后用,但出现了非法变量名错误。这是我的脚本的一部分:
#!/bin/csh
set echo
grep -n -m 1 "HR" Tossed/length/TLD2R-TT.txt | cut -d : -f 1
To_Start=$((grep -n -m 1 "HR" Tossed/length/TLD2R-TT.txt | cut -d : -f 1))
这是输出:
[maurerj1@rucc-headnode Tenengolts_Generate]$ ./flow_LBBH.sh 7 0 0 0
grep --color=auto -n -m 1 HR0 Tossed/length7/TL7D2R0-0TT.txt
cut -d : -f 1
1 #This is the right number
Illegal variable name. #why is this not working?
据我所知,bash 变量名中允许使用大写字母、小写字母和下划线,所以我做错了什么?
$(( expr ))
语法用于计算,因此出现令人困惑的消息。
例如:echo $((4+4))
产生 8
你想评估一个命令的结果,简单的括号就可以了:
To_Start=$(grep -n -m 1 "HR" Tossed/length/TLD2R-TT.txt | cut -d : -f 1)
证明我观点的简单复制器:
To_Start=$(echo a:b | cut -d : -f 1)
echo $To_Start
产量:
a
我通过从 csh 更改为 bash、删除 set echo(通过将所有输入变量设为 "echo" 引起了一些奇怪的问题)并从 $(()) 更改为 $ 来解决问题().