我在发帖前快速搜索了一下,但找不到任何类似的帖子。让我知道它们是否存在。
正在执行的命令看起来很简单。目录列表用作函数的输入。
该目录包含一堆名为“epi1_mcf_0###.nii.gz”的文件
命令行版本(执行时bash正在运行):
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”函数中查找问题?)
最佳答案
`ls epi1_mcf_0*.nii.gz`
最好写成简单的 epi1_mcf_0*.nii.gz
。如:
fslmerge -t output_file epi1_mcf_0*.nii.gz
`ls`
不添加任何内容。
注意:作为答案而不是评论发布。 Markdown-lite 注释解析器阻塞在我的 `` `ls epi1_mcf_0*.nii.gz` ``
标记上。
关于linux - 命令在 Shell 脚本中起作用,但在命令行中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4200785/