【发布时间】:2020-04-13 07:00:56
【问题描述】:
我在 GNU sed 命令中遇到意外的“如果”和“然后”错误。如何连续检查输入。请帮助我
if ! [[ "$versionCode" =~ ^[0-9]+$ ]]
then
echo "Sorry integers only"
fi
这是我的错误
sh: 1: Syntax error: end of file unexpected (expecting "then")
sh: 1: Syntax error: "then" unexpected
Sorry integers only
sh: 1: Syntax error: "fi" unexpected
更新:
echo "Enter version code"
read versionCode
case "$versionCode" in
(*[!0-9]*) echo "Sorry integers only";;
("") echo "Empty is not a version code";;
(*) echo "do something with $versionCode";;
esac
echo "$versionCode"
sudo sed "s/\(versionCode[[:space:]]*\)[0-9]*/\1${versionCode}/" Version.gradle
这是我的错误
Enter version code
4
sh: 1: Syntax error: end of file unexpected (expecting ")")
sh: 1: Syntax error: word unexpected
sh: 1: Syntax error: word unexpected
sh: 1: Syntax error: word unexpected
sh: 1: Syntax error: "esac" unexpected
【问题讨论】:
-
@Cyrus 对不起,我不明白,请解释一下
-
:我在您发布的代码中没有看到任何
sed命令。此外,[[ .... ]]在 POSIX shell 中无效。 -
试试这个:
grep -q $'\r' your_script.sh && echo "carriage return found" -
你的代码在 Linux Ubuntu 下运行,我无法在 Win10 WSL 中测试。
标签: shell carriage-return