0

我正在编写一个程序,该程序将用于sqlmap进行简单扫描,然后使用正则表达式模式在我的数据库中查找严重错误。

问题是我将输出存储sqlmap在文本文件中。如果我将该文件放在根目录中就可以了,但是如果我尝试将其存储在登录用户的主目录下,则会出现此错误

sh1: cannot creat /home/user
sh2: /Desktop/results.txt not found

这是导致此错误的代码

$u = `id -u -n`;
my $com = `sqlmap -m $ARGV[0] >> /home/$u/Desktop/results.txt --batch`;

我不明白为什么变量$u将路径/home/$u/Desktop/results.txt分成两个单独的字符串。

4

1 回答 1

7

Perl 有获取用户名的功能,无需调用外部命令:

my $u = getpwuid $<;

请注意,没有任何东西可以保证用户的家将在/home/$u(参见根的家:)/rootFile::HomeDir可以帮助你。或者,~/用于 shell 命令。

于 2015-11-14T15:18:09.643 回答