我试图让这个脚本正常运行,但我得到./passmark.sh line 7: [y command not found.
这是我的脚本
#!/bin/bash
# A simple script to ask a user for a pass mark and then display a grade
# the grade will be either an A, B, C, D or F
#
CONT=y
echo
while [$CONT = "y" ]
do
echo -e "\"Please enter a pass mark: \c \""
read MARK
if [$MARK -ge "0" -a $MARK -lt "50"] ; then
echo -e "\n \"F\" \n"
elif [$MARK -ge "50" -a $MARK -lt "60"] ; then
echo -e "\n \"D\" \n"
elif [$MARK -ge "60" -a $MARK -lt "70"] ; then
echo -e "\n \"C\" \n"
elif [$MARK -ge "70" -a $MARK -lt "80"] ; then
echo -e "\n \"B\" \n"
elif [$MARK -ge "80" -a $MARK -lt "100"] ; then
echo -e "\n \"A\" \n"
else
echo -e "\"Invalid input!!\n \""
fi
echo -e "\"Would you like to enter another pass mark? (y/n) \c \""
read REPLY
case "$REPLY" in
n | N | no | No | NO ) CONT=n ;;
*) ;;
esac
echo
done
Run Code Online (Sandbox Code Playgroud)
您在[and周围需要空格],例如
if [ "$MARK" -ge 0 -a "$MARK" -lt 50 ]; then
Run Code Online (Sandbox Code Playgroud)
你写这样的,当时$MARK是7,它试图执行[7的,而不是通过命令7作为参数传递给该[命令([仅仅是一个简短的名称test)。
您还应该引用变量。否则,如果用户输入一个空行或多个单词,将无法正确解析测试表达式。
| 归档时间: |
|
| 查看次数: |
9449 次 |
| 最近记录: |