OSX变量赋值给出错
问题描述:
'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
答
你正在寻找包括在(路径)的字符串变量值:
${varName}
是您如何引用一个名为varName
变量 - 注意分隔符,{
和}
(其并不总是需要)。-
相比之下,你错误地使用语法
$(...)
,这意味着从一个字符串命令嵌入输出。-
因此,令牌
type
和file_type
被解释为命令并执行:type
恰好是一个内置实用程序时,不带参数称为输出无关的名称。另一方面,不是任何现有命令的名称,这就是Bash抱怨的原因(command not found
)。
得到的文件路径 - 被执行的命令替换后 - 为
delta__.bedgraph
(扩展到空字符串这两个命令替换),导致cat
报告一个不存在的文件(No such file or directory
)。
-
更多见man bash
。
'cat delta _ $ {type} _ $ {file_type} .bedgraph' – jm666
'$(something)'试图_execute_' something'就好像它是一个命令或可执行文件一样。这是你想要的吗? – ForceBru
好吧,我抓住了{}错字。 – biotech