如何在bash脚本中将函数的输出设置为变量值?

Arronical

在bash脚本中,我具有以下功能来计算目录中文件的数量。

file_count() {
  no_of_files=$(find "$1" -maxdepth 1 -type f -printf '.' | wc -c)
}

我想在不同的目录上重复使用它,并将计数保存到每个目录的变量中。目前,我使用

file_count $somedir
files_in_somedir="$no_of_files"

我知道我no_of_files每次都会在函数外部设置变量,并且希望将其设置为函数的局部变量,而不是在主脚本中设置中间变量。以防万一出现一些错误,这意味着变量在函数调用之间不会发生变化(可能是错误键入函数名称),并且使用了旧值no_of _files

如果我的职能是:

file_count() {
  local no_of_files=$(find "$1" -maxdepth 1 -type f -printf '.' | wc -c)
}

我如何轻松设置这些目录计数变量?

字节指挥官

Bash函数不像其他编程语言上的函数,它们更像命令。这意味着它们没有经典的返回值,但是

  • 退出/返回码。这是一个介于0到255之间的整数,其中0表示“成功”,每隔一个值表示一个错误。如果您尝试指定一个超出此范围的数字,它将以256为模(从您的数字加或减255直到它适合0-255的范围)。

    除非您使用以下return命令手动设置该代码,否则该代码将自动设置为在函数内部执行的最后一条语句的返回代码

    return 1
    
  • 输出流。每个Bash函数都可以像正常脚本一样将任意字符串写入输出流(STDOUT和STDERR)。输出可以直接来自函数中运行的命令,也可以使用手动设置echo

    但是,您可以在运行函数时捕获它,而不是让该输出显示在控制台中,例如使用Bash的命令替换语法,并将其存储在主脚本中的变量中:

    example_function() {
        # do something useful
        echo "return this message"
    }
    
    returned_value="$(example_function)"
    

因此,您的代码将必须如下所示:

file_count() {
    find "$1" -maxdepth 1 -type f -printf '.' | wc -c
    # the line above already prints the desired value, so we don't need an echo
}

files_in_somedir="$(file_count "$somedir")"

有关更多信息,请参见bash脚本中的返回值(在堆栈溢出中)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在bash脚本中将函数的输出设置为变量值?

来自分类Dev

在bigquery脚本中将Array的列设置为变量值

来自分类Dev

如何在Firebase Cloud中将变量值设置为“字段名称”。网页/ HTML

来自分类Dev

如何在c#中将变量值设置为DataTable名称

来自分类Dev

如何在函数中设置变量值?

来自分类Dev

如何在Python Gekko中将变量值设置为x [3] = 6(不是初始条件)?

来自分类Dev

如何在asp.net中将变量值从aspx.cs文件设置为aspx文件?

来自分类Dev

如何在 If 中设置变量值

来自分类Dev

如何将两个变量值计算为不同的函数,并在php中将输出显示为其他函数?

来自分类Dev

如何在不同的python脚本中将python脚本的输出设置为变量?

来自分类Dev

如何在casperjs中将变量值传递给sendKeys

来自分类Dev

如何在C中将变量值传递给数组

来自分类Dev

在Powershell中,如何在函数中设置变量值并使该值在父作用域中可用?

来自分类Dev

如何在 JavaScript 中为新的变量值分配一个变量值

来自分类Dev

如何知道为联合设置了哪个变量值?

来自分类Dev

如何将变量值设置为每行零

来自分类Dev

如何在php中获取脚本变量值

来自分类Dev

如何在php中获取脚本变量值

来自分类Dev

PHP,如何从函数设置类变量值

来自分类Dev

如何在shell脚本中将一个变量值分配给另一个变量

来自分类Dev

如何在angularjs模板中设置范围变量值

来自分类Dev

如何在Flask HTML模板中设置变量值

来自分类Dev

如何在<input value =''“>中设置Javascript的变量值

来自分类Dev

如何在angularjs模板中设置范围变量值

来自分类Dev

如何在类中存储变量值,即“设置”?

来自分类Dev

如何在MySQL中输入bash命令的变量值?

来自分类Dev

如何在bash中用引号括起变量值?

来自分类Dev

如何在json文件中传递bash变量值

来自分类Dev

如何在jquery中的函数外获取变量值

Related 相关文章

  1. 1

    如何在bash脚本中将函数的输出设置为变量值?

  2. 2

    在bigquery脚本中将Array的列设置为变量值

  3. 3

    如何在Firebase Cloud中将变量值设置为“字段名称”。网页/ HTML

  4. 4

    如何在c#中将变量值设置为DataTable名称

  5. 5

    如何在函数中设置变量值?

  6. 6

    如何在Python Gekko中将变量值设置为x [3] = 6(不是初始条件)?

  7. 7

    如何在asp.net中将变量值从aspx.cs文件设置为aspx文件?

  8. 8

    如何在 If 中设置变量值

  9. 9

    如何将两个变量值计算为不同的函数,并在php中将输出显示为其他函数?

  10. 10

    如何在不同的python脚本中将python脚本的输出设置为变量?

  11. 11

    如何在casperjs中将变量值传递给sendKeys

  12. 12

    如何在C中将变量值传递给数组

  13. 13

    在Powershell中,如何在函数中设置变量值并使该值在父作用域中可用?

  14. 14

    如何在 JavaScript 中为新的变量值分配一个变量值

  15. 15

    如何知道为联合设置了哪个变量值?

  16. 16

    如何将变量值设置为每行零

  17. 17

    如何在php中获取脚本变量值

  18. 18

    如何在php中获取脚本变量值

  19. 19

    PHP,如何从函数设置类变量值

  20. 20

    如何在shell脚本中将一个变量值分配给另一个变量

  21. 21

    如何在angularjs模板中设置范围变量值

  22. 22

    如何在Flask HTML模板中设置变量值

  23. 23

    如何在<input value =''“>中设置Javascript的变量值

  24. 24

    如何在angularjs模板中设置范围变量值

  25. 25

    如何在类中存储变量值,即“设置”?

  26. 26

    如何在MySQL中输入bash命令的变量值?

  27. 27

    如何在bash中用引号括起变量值?

  28. 28

    如何在json文件中传递bash变量值

  29. 29

    如何在jquery中的函数外获取变量值

热门标签

归档