我正在运行以下perl脚本
#!/usr/bin/perl
use strict;
if ( @ARGV != 2 ){
print "usage: /usr/local/bin/htpasswd.pl <username> <password>\n";
}
else {
print $ARGV[0].":".crypt($ARGV[1],$ARGV[1])."\n";
}
但收到错误
-bash:意外令牌附近的语法错误`&lt;&#39;
我不明白为什么。 所以有人能告诉我为什么会出现这个错误吗? 伙计们抱歉我忘了告诉 我正在使用此脚本使用以下命令
创建htpasswd文件/usr/local/bin/htpasswd.pl <user> <password> >> /etc/nagios/htpasswd.users
答案 0 :(得分:2)
我忘了告诉我使用此脚本使用以下命令创建htpasswd文件
/usr/local/bin/htpasswd.pl <user> <password> >> /etc/nagios/htpasswd.users
您必须使用要作为参数传递的用户名和密码替换<user>
和<password>
。
e.g。
/usr/local/bin/htpasswd.pl bob 'TjV7!cdbta1AGs' >> /etc/nagios/htpasswd.users
<
和>
在命令行中具有特殊含义,但在说明中它们只是表示占位符。
您收到的错误消息是因为您希望文件名使用STDIN时有第二个<
。
答案 1 :(得分:-1)
问题出在<user>
<password>
。使用适当的输入
例如
/usr/local/bin/htpasswd.pl test 'pass' >> /etc/nagios/htpasswd.users