使用变量的值作为脚本的退出代码

使用变量的值作为脚本的退出代码

我可以找到大量有关如何将脚本的退出代码分配给 av 变量的信息,但我想做相反的事情:使用变量的值(在脚本中定义)作为脚本的退出代码。

例如,我有一个脚本可以计算特定文件系统上打开文件的数量(以及一堆其他内容)。我希望脚本的退出代码是打开文件的数量,所以本质上是:

#!/bin/bash

OPENFILES=`lsof /filesystem | wc -l`

exit $OPENFILES

因此,在脚本退出后,“echo $?”会给我脚本中定义的 $OPENFILES 的值。

我尝试过使用引号、括号等的各种排列,但结果都是空的。我觉得我想做的事情要么是不可能的,要么是太明显了以至于我忽略了它......

答案1

您不能真正使用退出代码来实现您想要的目的,尤其是因为退出代码是 0 到 255 之间的整数。如果有 783 个打开的文件,您想要什么行为?

此外,这种用法从根本上被破坏,因为您设置的退出代码不是零不是是一种错误情况,远远不符合标准。

答案2

您不需要写入文件。只需让脚本输出wc结果即可

#!/bin/sh
lsof /filesystem | wc -l

然后捕获结果

openfiles=$(/path/to/openfiles.sh)

如果您的脚本不比这更复杂,只需将其添加到您的 ~/.bashrc 中

alias openfiles='lsof /filesystem | wc -l'

进而

n=$(openfiles); echo $n

相关内容