2017-02-19 97 views
0

'delta_oligo_combined.bedgraph'文件如何可能在目录中,并且不能被cat命令看到? OSX错字?OSX变量赋值给出错

$ type=oligo 
$ file_type=combined 
$ ls delta_oligo_combined.bedgraph 
delta_oligo_combined.bedgraph 
$ cat delta_$(type)_$(file_type).bedgraph 
-bash: file_type: command not found 
cat: delta__.bedgraph: No such file or directory 
+1

'cat delta _ $ {type} _ $ {file_type} .bedgraph' – jm666

+1

'$(something)'试图_execute_' something'就好像它是一个命令或可执行文件一样。这是你想要的吗? – ForceBru

+0

好吧,我抓住了{}错字。 – biotech

回答

1

你正在寻找包括在(路径)的字符串变量

  • ${varName}是您如何引用一个名为varName变量 - 注意分隔符,{}(其并不总是需要)。

  • 相比之下,你错误地使用语法$(...),这意味着从一个字符串命令嵌入输出。

    • 因此,令牌typefile_type被解释为命令并执行:

      • type恰好是一个内置实用程序时,不带参数称为输出无关的名称。另一方面,不是任何现有命令的名称,这就是Bash抱怨的原因(command not found)。

    • 得到的文件路径 - 被执行的命令替换后 - 为delta__.bedgraph(扩展到空字符串这两个命令替换),导致cat报告一个不存在的文件(No such file or directory)。

更多见man bash