小编dgm*_*ike的帖子

捕获没有子shell的shell函数的输出

rbenv在机器上安装了(ruby 版本管理器),它的工作原理是这样的:

$ rbenv local
2.3.1
Run Code Online (Sandbox Code Playgroud)

写入标准输出我的 ruby​​ 的本地版本。我想拯救这个版本并在一个变量中声明它以在另一个场合重用。

$ declare -r RUBY_DEFINED_VERSION=$(rbenv local)
$ echo Using ruby version $RUBY_DEFINED_VERSION
Using ruby version 2.3.1
Run Code Online (Sandbox Code Playgroud)

有用!

但我不想使用子外壳来完成工作(使用$()``)。我想使用相同的外壳,我不想创建一个tmp文件来完成这项工作。

有没有办法做到这一点?

注意: declare -r不是强制性的,它可以是一个简单的var=FOOBAR.

shell command-substitution subshell variable

10
推荐指数
3
解决办法
5682
查看次数

标签 统计

command-substitution ×1

shell ×1

subshell ×1

variable ×1