获得一个Perl命令输出到变量壳
问题描述:
我有点用Perl一个小白的,不能看什么不对的脚本:获得一个Perl命令输出到变量壳
#!/bin/sh
randAnPass=true;
if [ $randAnPass = true ]
then
pass=perl /root/bin/randpass
else
# prompt for setting user's password ..
echo -n "pick password for '${user}': "
read pass
fi
#echo $randAnPass;
echo "Generated pass = $pass";
出于某种原因,输出:
r4Nd0mP
Generated pass =
我希望它输出
Generated pass = r4Nd0mP
答
pass=`perl /root/bin/randpass`
答
如果你想只是捕捉STDOUT perl的命令使用,
pass=$(perl /root/bin/randpass)
但是,如果你需要同时捕获STDERR和STDOUT,
pass=$(perl /root/bin/randpass 2>&1)
+0
你的意思是STDERR? – TLP 2012-02-26 09:12:20
+0
是的,谢谢@TLP – 2012-02-26 09:49:26
使用反引号捕获命令的输出,你”只是运行命令。 – 2012-02-26 01:30:53
@Dave:反引号? '$()'好得多。 – 2012-02-26 01:32:11
我不明白它有多好,但肯定的是,它也可以。 – 2012-02-26 01:32:56