我正在尝试使用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变量名允许使用大写字母、小写字母和下划线,那么我做错了什么呢?
set echo
将清除您传递给脚本的任何参数,并将$1
设置为字符串echo
。这行代码的意图并不明显。 - chepnercsh
。至少,这是 shebang 行调用的内容。请澄清并修正标签/标题或 shebang,使它们保持一致。 - rici