【问题标题】:how do I call multiple commands in a single variable for bash script? [closed]如何在 bash 脚本的单个变量中调用多个命令? [关闭]
【发布时间】:2020-06-09 20:51:00
【问题描述】:

我有一组命令,我希望将它们全部定义在一个变量中。以下是我希望在输出中显示的命令。

pwdx `ps -ef | grep java | cut -d' ' -f4` | cut -d/ -f7

我试过了

app=`pwdx `ps -ef | grep java | cut -d' ' -f4` | cut -d/ -f7` 
echo $app

但这给出了空输出。尝试使用 for 循环,也失败了。

【问题讨论】:

  • 你可以尝试对这些命令使用 (),例如。 $ (echo 111; echo 222; echo 333) 这将为您提供输出 111 222 333。
  • 愚蠢的问题,如果没有最终剪辑,您会看到什么?
  • @eight Stacker:如果您确实在发布命令时完全 编写了命令,那么您对app 的分配应该会带来一些错误,例如 bash : -ef: command not foundcut 前面的| 语法错误。
  • @eightStacker :另外,我不明白你的问题。你的目标是什么?例如,我想在输出中显示是什么意思?我知道您想将代表一系列命令的字符串存储到变量中。然后你想用这个字符串做什么?

标签: linux bash scripting solaris


【解决方案1】:

使用|& 运算符将前一个命令的输出(stdout 和 stderr)通过管道传输到另一个命令的标准输入:

pwdx `ps -ef |& grep java |& cut -d' ' -f4` |& cut -d/ -f7

有关执行多个 bash 命令的更多信息,请参阅这篇文章:Running multiple commands in one line in shell

【讨论】:

  • 感谢您的回复队友,我正在尝试使用变量内部的变量将其作为单个命令执行.. 像这样...for i in `pwdx `ps -ef | grep java | cut -d' ' -f4` | cut -d/ -f7`; do echo $i ; done
猜你喜欢
  • 2015-04-24
  • 2023-03-24
  • 2018-12-14
  • 2021-04-10
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
相关资源
最近更新 更多