我正在尝试编写一个小的脚本,该脚本从文件或用户那里获取输入,然后从中删除任何空白行。
我正在尝试这样做,以便如果没有指定文件名,它将提示用户输入。也是将手动输入输出到文件然后运行代码或将其存储在变量中的最佳方法吗?
到目前为止,我已经有了它,但是当我使用文件运行它时,在返回我想要的输出之前,它会给出1行错误。错误说./deblank: line 1: [blank_lines.txt: command not found
if [$@ -eq "$NO_ARGS"]; then
cat > temporary.txt; sed '/^$/d' <temporary.txt
else
sed '/^$/d' <$@
fi
我要去哪里错了?
您需要在[
和周围加空格]
。在bash中,[
是一个命令,您需要在其周围留有空格,以便bash对其进行解释。
您还可以使用来检查参数是否存在(( ... ))
。因此,您的脚本可以改写为:
if ((!$#)); then
cat > temporary.txt; sed '/^$/d' <temporary.txt
else
sed '/^$/d' "$@"
fi
如果只想使用第一个参数,则需要说$1
(而不是$@
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句