
我有以下代码:
# The current working directory # contains the files a1 a2 bc files="a*" if [ "a1 a2" = $files ] then echo match else echo $files fi
我得到的错误消息是$文件扩展到多个单词,如果失败。
这个错误信息是什么意思?
需要从Unix shell控制 – > Python – >&back
路由命令输出
在第二个字符后面插入一个空格,后面跟三个字符
如何find指向特定文件夹的所有符号链接?
我如何安装phantomJs二进制文件?
unix $#命令是做什么的?
C中的dynamic数组
发送到Tru64正在返回ENOBUF
awk保存修改到位
如何将文件权限更改为某个文件模式到当前目录的子文件夹?
命令的= *** 作符将一个单词作为其左 *** 作数,将一个单词作为其右 *** 作数。
您的变量$files包含多个文件的名称,所以它扩展为多个单词。
添加引号将其视为一个单词:
if [ "a1 a2" = "$file" ]
但正如乔纳森·莱弗勒(Jonathan Leffler)的评论所正确指出的那样,这仍然行不通。 它避免了语法错误,但它永远不会匹配,因为"$file"扩展为"a*" 。
有一个相当复杂的方式来做你似乎试图做的事情:
if [ "a1 a2" = "$(eval echo $file)" ]
由于$file不是引号,因此扩展为a* ,然后扩展为a1 a2 ,即多个单词。 $(command)构造可以用双引号括起来,以将其从多个单词转换为单个单词。
我完全不知道这是做你想做的最好的方法。
(我应该提一提,在这个答案仍然不正确的时候你接受了这个答案,你应该在这之前尝试过,现在我认为是正确的)。
总结以上是内存溢出为你收集整理的了解Unix中的错误信息全部内容,希望文章能够帮你解决了解Unix中的错误信息所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)