Bash 我怎样才能修复正在阅读的行?
我在一个名字列表中有多行注释掉了。 我正试着阅读和编号的确切行,他们只被注释了。 输出中的当前行如下所示Bash 我怎样才能修复正在阅读的行?,bash,Bash,我在一个名字列表中有多行注释掉了。 我正试着阅读和编号的确切行,他们只被注释了。 输出中的当前行如下所示 第2行:jimmy注释掉了& 第三行:汤米评论说。汤米在四号线而不是三号线。 我很确定我很接近或者希望如此。我只是被卡住了,希望有人能帮助初学者 废话文件: jim #jimmy tom #tommy 脚本文件: #!/bin/sh n=1 input='blah' while IFS= read -r Line; do Domain=$(echo "$Line" | grep
第2行:jimmy注释掉了&
第三行:汤米评论说。汤米在四号线而不是三号线。
我很确定我很接近或者希望如此。我只是被卡住了,希望有人能帮助初学者
废话文件:
jim
#jimmy
tom
#tommy
脚本文件:
#!/bin/sh
n=1
input='blah'
while IFS= read -r Line; do
Domain=$(echo "$Line" | grep -v "^[[:space:]*\#]")
if [ -z "$Domain" ]; then
echo "Line $n: $Line commented out"
continue;
fi
n=$((n+1))
done < $input
代码的主要问题是
continue
语句跳过行号,直接进入循环的末尾
以下是您的代码的固定版本:
#/副秘书长/垃圾箱/环境卫生
n=1
输入class='blah'
而IFS=读取-r行;做
Domain=“${Line%%#*}”
如果[-z“$Domain”];然后
echo“行$n:$Line注释掉”
其他的
:#使用域做一些事情
fi
n=$((n+1))
完成代码的主要问题是continue
语句跳过行号,直接进入循环的末尾
以下是您的代码的固定版本:
#/副秘书长/垃圾箱/环境卫生
n=1
输入class='blah'
而IFS=读-r行;做
Domain=“${Line%%#*}”
如果[-z“$Domain”];然后
echo“行$n:$Line注释掉”
其他的
:#使用域做一些事情
fi
n=$((n+1))
完成只需从0开始n
,然后将计数器移到条件继续上方
#!/bin/bash
n=0
input='blah'
while IFS= read -r Line; do
n=$((n+1))
Domain=$(echo "$Line" | grep -v "^[[:space:]*\#]")
if [ -z "$Domain" ]; then
echo "Line $n: $Line commented out"
continue;
fi
done < $input
也就是说,你可以更简洁地做类似的事情:
$ grep -n '^#' blah
2:#jimmy
4:#tommy
只需从0开始n
,然后将计数器移到条件继续上方即可
#!/bin/bash
n=0
input='blah'
while IFS= read -r Line; do
n=$((n+1))
Domain=$(echo "$Line" | grep -v "^[[:space:]*\#]")
if [ -z "$Domain" ]; then
echo "Line $n: $Line commented out"
continue;
fi
done < $input
也就是说,你可以更简洁地做类似的事情:
$ grep -n '^#' blah
2:#jimmy
4:#tommy
你能正确缩进你的代码吗?让它更容易阅读和理解?我不熟悉编码和尝试。对不起,谢谢。我正在重试。你能正确缩进你的代码吗?让它更容易阅读和理解?我不熟悉编码和尝试。对不起,谢谢。我在重试。