我正在尝试使用 grep 从文本文件中提取字段。我想将行号存储到 bash 变量中以备后用,但出现了非法变量名错误。这是我的脚本的一部分:
#!/bin/csh
set echo
grep -n -m 1 "HR${4}" Tossed/length${1}/TL${1}D2R${2}-${3}TT.txt | cut -d : -f 1
To_Start=$((grep -n -m 1 "HR${4}" Tossed/length${1}/TL${1}D2R${2}-${3}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 变量名中允许使用大写字母、小写字母和下划线,那么我做错了什么?
最佳答案
我通过从 csh 更改为 bash、删除 set echo(通过将所有输入变量设置为“echo”导致了一些奇怪的问题)以及从 $(()) 更改为 $() 来解决此问题。
关于Bash:非法变量名错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862587/