bash的陷阱(3): return

bash里的return

当函数hook是一个只有一行return的空函数,并且hook函数被另一个test函数用在结尾的时候,test的返回结果很有趣:

#!/bin/bash

function test {
  ls /notexist >/dev/null 2>&1
  hook
}

function hook() {
    return
}

hook
echo "hook execute result "$?

test
echo "test execute result "$?

如果没有给return语句一个显式的code,它返回的是上一次命令的结果。hook函数这里应该用return 0更严谨一下。

Leave a Reply

Your email address will not be published. Required fields are marked *