linux - 从一个参数和仅一个参数获取输入

标签 linux bash shell debian

这是我脚本中的一个函数:

This is a function from my script

这只是我正在编写的脚本中的一个函数。基本上我试图让用户只输入一个参数,如果它不止一个它必须输出一个错误,如果它没有一个参数也是一个错误。当我运行脚本时,我得到:

a syntax error at the elif [ $# -ne 1]; then] line

最佳答案

正如我评论的那样,您的代码在第一个 if 语句中缺少一个 semi,并且 -ne 应该是一个 -eq。这是工作代码和一组测试用例:

$ cat student_check.sh
Student_Check()  {
  if [ $# -eq 0 ] ;  then 
    echo "No file specified"
  elif [ $# -eq 1 ] ; then
    echo success
  else
    echo "Invalid input"
    exit
  fi
}

echo Test 0 
Student_Check
echo Test 1 
Student_Check 1 
echo Test 2 
Student_Check 1 2


$ ./student_check.sh
Test 0
No file specified
Test 1
success
Test 2
Invalid input

关于linux - 从一个参数和仅一个参数获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53385638/

相关文章:

linux - 如何访问 mplayer 输出/知道 mplayer 视频何时停止播放?

linux - 在 bash/sh 中分别通过管道传输 stderr 和 stdout

linux - npm install 不关心 package-lock.json

linux - qmake .pro 文件未正确解析以生成 LD_LIBRARY_PATH

linux - 在 Linux 中拆分有序文件

bash - 从 stdout 中随机选择一行

bash - 使用管道命令忽略 Bash 脚本中的 HUP 信号

java - 有Linux服务吗

xml - 如何搜索xml文件,条件是文件名在文件内

c - task_pid_nr(current) 返回一个没有出现在 ps 输出中的 pid