将字符串从perl返回到bash
我试图向shell脚本返回一个字符串,结果出现错误:将字符串从perl返回到bash,bash,perl,Bash,Perl,我试图向shell脚本返回一个字符串,结果出现错误: 无法在子例程的外部返回… $result = "Error: $ARGV[0] changed!" return ($result); 有没有关于如何将其传递回shell的想法?Bash没有返回值的概念。相反: 命令有一个表示成功/失败的退出值。退出代码0表示成功。如果脚本没有死掉(),Perl将自动退出并成功 命令可以写入文件描述符,例如stdout。Bash可以重定向和捕获此输出 因此,如果一个程序(用Perl或其他语言编写)希望将
无法在子例程的外部返回…
$result = "Error: $ARGV[0] changed!"
return ($result);
有没有关于如何将其传递回shell的想法?Bash没有返回值的概念。相反:
- 命令有一个表示成功/失败的退出值。退出代码0表示成功。如果脚本没有死掉(),Perl将自动退出并成功
- 命令可以写入文件描述符,例如stdout。Bash可以重定向和捕获此输出
result="$(yourcommand arg1 arg2)"
通常,输出通过管道传输到不同的命令:
yourcommand arg1 arg2 | grep Error # all lines including "Error"
或写入文件:
yourcommand arg1 arg2 >file.txt
您通常会使用
print”错误:$ARGV[0]已更改\n“
或说“…”
。如错误消息所示,return
用于将值从子例程返回给调用方。如何在shell脚本中捕获字符串?请参阅本地sh
手册页中的$(…)
或``
运算符。