使用命令行输入参数

Use command line to enter parameters

我正在尝试了解如何使用命令行在我的程序中输入不超过三个参数...
它当前要求用户说出他们的用户名、姓名和密码——然后将创建的姓名、密码和 date/time 放入日志文件中,用户名作为 doc 文件——如下所示

function savefile {
# Save to file
  if [ -e "$username".log ]; then
    echo "Username already exists, returning you to the menu."
    sleep 2
    clear
      menu
  else
    echo "$fullname" >> "$username".log
    echo "$password" >> "$username".log
      curdate=$(date +'%d/%m/%Y %H:%M:%S')
    echo "$curdate" >> "$username".log
  echo "Creating your account"
    sleep 2
    clear
  echo "Account created"
  echo
    afterBasic
  fi 
}  

想知道你们是否知道如何从命令行执行此操作?我知道我必须使用

sh 1 2 3

但仅此而已...

这是用 Batch 写的同样的东西,如果这也有帮助的话……

set OP_username=%1
set OP_fullname=%2
set OP_password=%3
    if [%3]==[%9] goto 1
echo %OP_fullname% >> %OP_username%.log
echo %OP_password% >> %OP_username%.log
echo %date% %time% >> %OP_username%.log

要访问命令行参数,请使用 $ 符号。因此,要访问您编写的第一个命令行变量 </code> 等等。因此,将变量 <code>OP_username 设置为等于您可以编写的第一个参数 OP_username=.

到 运行 您的程序,使用您在命令行上编写 saveFile 1 2 3 的参数。 saveFile 是一个函数而不是 bash 脚本。如果您想 运行 将其作为 bash 脚本保存在 .sh 文件中。 运行 .sh 文件将定义您可以按上述方式调用的函数。另一种选择是不使用函数,而是在 .sh 文件中定义您的代码,假设名为 saveFile.sh。那么你可以 运行 sh saveFile.sh 1 2 3。所以你的代码将是:

saveFile.sh/function

# Save to file
username=
fullname=
password=
if [ -e "$username".log ]; then
  echo "Username already exists, returning you to the menu."
  sleep 2
  clear
  menu
else
  echo "$fullname" >> "$username".log
  echo "$password" >> "$username".log
  curdate=$(date +'%d/%m/%Y %H:%M:%S')
  echo "$curdate" >> "$username".log
  echo "Creating your account"
  sleep 2
  clear
  echo "Account created"
  echo
  afterBasic
fi 

(ba)sh脚本中的命令行参数为</code>、<code></code>等</p> <p>所以你可以使用</p> <pre><code>#!/bin/bash OP_username= OP_fullname= OP_password= # ...