2017-02-19 77 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