Linux shell问题?求解

#!bin/bashoption="-F|grep/$"echo`ls$option`运行报错... #! bin/bash
option=" -F|grep /$"

echo `ls $option`
运行报错
展开
 我来答
百度网友023b1c3
科技发烧友

2020-06-01 · 智能家居/数码/手机/智能家电产品都懂点
知道小有建树答主
回答量:1086
采纳率:84%
帮助的人:281万
展开全部

题主你好,

通过使用-x参数进行调试,发现,你这种形式, 解释器会将字符串中的管道符"|"作为普通字符去解释, 而用在这里就是会被解释为ls的一个选项, 因为ls并没有"|"选项,所以会报错:

而你想让字符串中的"|"被解释为管道符,而非字符串, 可以使用eval命令(这只是其中一种方法):

注意: 不仅是将echo改为了eval, 命令后面的反引号也改为了双引号,而处理结果也变成了,我们期望的,先处理ls -F, 然后将输出作为grep的输入:

希望可以帮到题主, 欢迎追问

linuxprobe001
科技发烧友

2020-06-01 · 智能家居/数码/手机/智能家电产品都懂点
知道小有建树答主
回答量:855
采纳率:80%
帮助的人:50.3万
展开全部
写的语句有问题,应该是管道符前面是一条语句 你的-F显然什么都不是 想了解学习更多Linux语法可以看一下《Linux就该这么学》网上免费就能下载。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仔仔包7
2020-05-31 · 超过134用户关注了TA
知道答主
回答量:90
采纳率:33%
帮助的人:8万
展开全部
你这要是不报错才叫怪呢!定义的option有问题,请问-F是个什么命令,管道是将前面命令的输出结果传递给后一个命令,-F不是一个命令吧?没有输出结果,所以会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Leven开箱测评
2020-06-01 · TA获得超过614个赞
知道小有建树答主
回答量:732
采纳率:50%
帮助的人:204万
展开全部
你的option变量存在问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式