相关疑难解决方法(0)

如何在不使用全局变量的情况下在bash中返回数组?

我有一个创建数组的函数,我想将数组返回给调用者:

create_array() {
  local my_list=("a", "b", "c")
  echo "${my_list[@]}"
}

my_algorithm() {
  local result=$(create_array)
}
Run Code Online (Sandbox Code Playgroud)

有了这个,我只得到一个扩展的字符串.如何在不使用全局的情况下"返回"my_list?

arrays bash global-variables parameter-passing

68
推荐指数
6
解决办法
7万
查看次数

在bash脚本中读取函数中的stdin

我有一些bash函数输出一些信息:

  • 发现-MODELNAME功能于爱普生PPDS
  • 发现-MODELNAME功能于三星PPDS
  • 发现-MODELNAME式-HP-PPDS
  • 等......

我一直在编写读取输出和过滤它的函数:

function filter-epson {
    find-modelname-in-epson-ppds | sed <bla-blah-blah>
}

function filter-hp {
    find-modelname-in-hp-ppds | sed <the same bla-blah-blah>
}
etc ...
Run Code Online (Sandbox Code Playgroud)

但我认为最好做这样的事情:

function filter-general {
    (somehow get input) | sed <bla-blah-blah>
}
Run Code Online (Sandbox Code Playgroud)

然后调用另一个高级函数:

function high-level-func {
    # outputs filtered information
    find-modelname-in-hp/epson/...-ppds | filter-general 
}
Run Code Online (Sandbox Code Playgroud)

如何通过最好的bash实践实现这一目标?

bash shell pipe bash-function

38
推荐指数
4
解决办法
2万
查看次数