0

'delta_oligo_combined.bedgraph' 文件怎么可能在目录中并且 cat 命令看不到?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
4

1 回答 1

1

您正在寻找在(路径)字符串中包含变量值:

  • ${varName}是您引用名为变量varName的方式 - 请注意分隔符{}(并不总是需要)。

  • 相比之下,您错误地使用了 syntax $(...),它用于将命令的输出嵌入到字符串中。

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

      • type恰好是一个内置实用程序的名称,它在没有参数的情况下调用时不输出任何内容。

      • file_type另一方面,它不是任何现有命令的名称,这就是 Bash 抱怨 ( command not found) 的原因。

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

查看man bash更多。

于 2017-02-19T20:24:51.693 回答