首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在使用read()或run()运行bash命令时,我应该如何转义'&&‘和其他特殊字符?

在使用read()或run()运行bash命令时,我应该如何转义'&&‘和其他特殊字符?
EN

Stack Overflow用户
提问于 2020-06-10 20:32:03
回答 1查看 285关注 0票数 5

我的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = read(`df -h|grep /dev/sda1 && df -h|grep pCloud`, String)

当我运行它时,我从Julia那里得到了以下消息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Warning: special characters "#{}()[]<>|&*?~;" should now be quoted in commands
 │   caller = #shell_parse#333(::String, ::Function, ::String, ::Bool) at shell.jl:100
 └ @ Base ./shell.jl:100
df: invalid option -- '|'
Try 'df --help' for more information.
ERROR: LoadError: failed
process: Process(`df '-h|grep' /dev/sda1 '&&' df '-h|grep' pCloud`, ProcessExited(1)) [1]

我发现有人有类似的problem,但他们似乎已经解决了这个问题,而不是逃脱。

EN

回答 1

Stack Overflow用户

发布于 2020-06-11 00:31:08

Julia命令不能在shell中运行,因此使用那样的shell特性将不起作用。如果希望通过管道从一个命令转到另一个命令,则应使用pipeline函数;如果希望测试命令或管道的成功或失败,请使用success函数运行它。在这种情况下,您可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
success(pipeline(`df -h`, `grep /dev/sda1`)) &&
success(pipeline(`df -h`, `grep pCloud `))

当然,在这种情况下,您可以调用df -h一次并执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df = read(`df -h`, String)
contains(df, "/dev/sda1") && contains(df, "pCloud")
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62312599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文