linux - 如果在命令行上输入参数,不想玩函数

标签 linux bash function command-line

我一直在四处寻找,但找不到解决方案...

基本上,我有一个创建用户帐户的程序,我也可以使用命令行界面创建一个帐户。
我想要的是,当我使用命令行时,程序的其余部分不会运行。因为此刻,它创建了帐户,然后返回到菜单。

function menu {
  echo "Welcome to OP-SYS Account creation. Please choose which mode you would like to continue in."
  echo

  echo "[1] Basic Account Creation"
  echo "[2] Advanced Account Creation"
  echo "[3] Exit"
  echo

#Change user input to functions, reject others
  read CHOICE #Load user input to variable
    if  [ "$CHOICE" = 1 ] || [ "$CHOICE" = 2 ] || [ "$CHOICE" = 3 ]; then
#Goto function opt#
      opt"$CHOICE"
    else
      echo "That is not a valid entry. Returning you to the menu."
      sleep 2
      clear
      menu
    fi

}

#other code#  

    konsoleend() {
    clear
    #popd
    }

username=$1
firstname=$2
surname=$3
password=$4
    echo "$firstname" "$surname" >> "$username".log
    echo "$password" >> "$username".log
    curdate=$(date +'%d/%m/%Y %H:%M:%S')
    echo "$curdate" >> "$username".log
    #menu
    konsoleend
    menu

最佳答案

你所说的 a 和 a 之间的区别是什么意思一点都不清楚 “命令行界面”和“程序”,但也许您的意思只是如果没有为您要使用菜单的程序提供任何参数。如果是这样,只需写下:

test $# = 0 && menu

在脚本的最后一行而不只是菜单

关于linux - 如果在命令行上输入参数,不想玩函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30150892/

相关文章:

c - 在简单的添加功能中查找错误

linux - Bash - 从管道接收的字符串 (xinput) 中检索 ID

windows - 编写终端仿真器,里面有什么?

javascript - 这些代码的含义是什么? JavaScript

从/dev/urandom 读取的 Bash 脚本

linux - 如何在linux中模拟挂起的任务?

ios - 调用函数并在展开可选值时意外发现 nil

linux - 仅为当前用户更新 gcc

linux - Gnome-Terminal,如何在不同目录启动?

linux - 在 Linux 中,如果两者具有相同的名称,如何取消链接与实际文件的软链接(soft link)