我在發帖之前很快搜索到了這個,但是找不到任何類似的帖子。讓我知道他們是否存在。命令從Shell腳本工作,但不是從命令行?
正在執行的命令看起來很簡單。目錄列表被用作函數的輸入。
該目錄包含了一堆命名文件的
命令行版本(這是執行時的bash運行) 「epi1_mcf_0 ### nii.gz」:
fslmerge -t output_file `ls epi1_mcf_0*.nii.gz`
shell腳本版本:
#!/bin/bash
fslmerge -t output_file `ls epi1_mcf_0*.nii.gz`
命令行版本失敗,但shell腳本完美工作。
該錯誤消息是特定於該功能的,但無論如何它都包含在內。
** ERROR (nifti_image_read): failed to find header file for 'epi1_mcf_0000.nii.gz'
** ERROR: nifti_image_open(epi1_mcf_0000.nii.gz): bad header info
Error: failed to open file epi1_mcf_0000.nii.gz
Cannot open volume epi1_mcf_0000.nii.gz for reading!
我一直非常沮喪與這個問題(更少,因爲我知道有一種方法來獲得命令的工作)。
任何幫助,將不勝感激。
(或者說是普遍的共識,這個問題應該在「fslmerge」功能來尋找?)
您是否定義了任何shell別名?(類型'別名')這些會影響命令行輸入的命令,但不會影響腳本。 – 2010-11-17 01:46:58
解決了這個問題......'ls'被定義爲'ls --color'。我很好奇 - 爲什麼這會有所作爲?當使用顏色版本時,ls的原始輸出是不同的? (謝謝!) – 2010-11-17 01:55:32
使用轉義碼生成顏色,這是由終端程序解釋的額外字符序列,但您通常不想傳遞給其他程序。 – 2010-11-17 01:59:26