例如
function fff(){
true && (return)
echo 1
}
fff
输出为1.
答案 0 :(得分:1)
显然,fff
一直到达终点,这就是为什么要打印1
的原因。关键是当return
放在parenthesis
内时,true && return
在子shell中执行。你应该已经完成了
true && (return)
而不是
()
使用子shell执行fff
内的任何内容,并且在子shell中的命令完成后,控件将传递回函数echo 1
,并在此处执行后续命令#!/bin/bash
function fff(){
true && return 255
echo 1
}
fff
echo $? # Will give you 255 as output
案件。
下面的脚本将为您提供正确的输出
(value modulo 255) - 1
请注意,大于255的返回值将被包裹,即您将获得259
。例如,如果您返回3
,则会获得(259%255)-1
,即karma start
。