微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux-bash:用于替换命令的变量中的管道字符

可以请人解释一下,为什么这不起作用?

#!/bin/bash
cmd="ps aux | grep -v grep"
cnt=$($cmd)

我从ps得到一个错误.

error: garbage option

Usage:
  ps [options]
.....

仅“ ps aux”是可以的-但不能使用任何其他管道命令.

谢谢!

解决方法:

使用函数将管道命令存储为以下命令会更好,更安全:

未设置cmd cnt

cmd() {
   ps aux | grep -v grep
}

并将其用于命令替换中,如下所示:

cnt="$(cmd)"

See BASH FAQ on storing command line in a variable

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐