shell脚本传入带|的字符串参数作为命令报错
时间: 2023-11-13 21:02:29 浏览: 150
向程序发送命令时出现错误
3星 · 编辑精心推荐
如果你在shell脚本中传递一个带有管道符 `|` 的字符串参数,并且尝试将其作为命令进行执行,会出现语法错误,因为shell会将管道符解释为管道操作符,而不是字符串的一部分。
为了避免这种情况,你可以将字符串参数存储在变量中,并使用引号将其括起来,例如:
```shell
#!/bin/bash
# 传递带有管道符的字符串参数
param="ls | grep test"
# 使用eval执行命令
eval "$param"
```
在这个例子中,我们将带有管道符的字符串参数存储在变量 `$param` 中,并使用 `eval` 命令执行该变量中的命令。`eval` 命令会将参数作为shell命令进行解析和执行,因此可以正确地解析带有管道符的字符串参数。
阅读全文