我正在尝试找出如何使用命令行输入我的程序中的三个参数...
当前,它要求用户说出他们的用户名,名称和密码 - 然后将其名称,密码和创建日期/时间放入将其用户名作为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
但是就是这样...
这是批次写的同一件事,如果这也有帮助...
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
要访问命令行参数,您使用 $
符号。因此,要访问第一个命令行变量,您可以编写$1
等。因此,将变量OP_username
设置为等于第一个参数,您可以编写OP_username=$1
。
用您在命令行上编写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=$1
fullname=$2
password=$3
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
命令行参数为 $1
, $2
, $3
,等等(ba)sh脚本。
因此您可以使用
#!/bin/bash
OP_username=$1
OP_fullname=$2
OP_password=$3
# ...