你知道我的脚本有什么问题,因为我总是得到错误消息:
position frac1 frac2
: command not found:
'/s1_met.sh: line 3: syntax error near unexpected token `do
'/s1_met.sh: line 3: `for lineF1 in $(cat $1); do
代码在这里:
export IFS=$'\n'
echo "position frac1 frac2";
for lineF1 in $(cat $1); do
if [ $(echo $lineF1 | cut -b 1-2) = "##" ]; then
echo "skip line" >&2;
else
startF1=$(echo $lineF1 | cut -f 4);
stopF1=$(echo $lineF1 | cut -f 5);
fracF1=$(echo $lineF1 | cut -f 9 | cut -d ";" -f 4 | cut -d "=" -f 2);
lineF2=$(grep "$startF1" $2);
if [ -z "$lineF2" ]; then
echo "position $startF1 cannot be found" >&2;
else
fracF2=$(echo $lineF2 | cut -f 9 | cut -d ";" -f 4 | cut -d "=" -f 2);
echo "$startF1 $fracF1 $fracF2";
fi;
fi
done;
答案 0 :(得分:-1)
它没有任何问题,你不能用BASH运行它。
编辑说你需要检查你的行结尾,你的评论下面的^ M意味着你在行上有额外的字符。见这里。
https://stackoverflow.com/tags/bash/info
尝试将“shebang”行放在脚本shebang docs
中要执行此操作,请运行which bash
,它会告诉您/bin/bash
之类的内容。那么你的脚本应该是:
#!/bin/bash
echo "I'm running with bash!"
试试看,你的语法还可以。