2

嗨,我正在尝试按照使用 perl 的答案中所述执行操作,但它不起作用。

#!/usr/bin/perl -w
$pipe="data";
$username="mukesh";
$password="mukesh";
open my $pipe, '|chpasswd' or die "can't open pipe: $!";
print {$pipe} "$username:$password";
close $pipe

[root@testgfs2 user_mgmt]# ./tess3.sh
Name "main::pipe" used only once: possible typo at ./tess3.sh line 2.
chpasswd: line 1: line too long
chpasswd: error detected, changes ignored

任何机构都可以提出建议。出了什么问题。

因为 --stdin 在所有 *nix 上都不可用,所以我正在尝试使用它

编辑:C 中是否有任何程序可以执行此操作。因为如果 *nixes 可能对所有版本都有用

4

2 回答 2

2

你可以试试这个

system("$USERNAME:$PASSWORD | chpasswd");

基于这个答案

于 2013-01-18T13:29:22.583 回答
0

代码没问题,因为您编写的代码对我来说很好。尝试检查引号匹配,我认为没有必要将文件 in.sh 扩展名,因为您有 #!/usr/bib/perl

于 2014-01-23T12:24:14.727 回答