linux - 命令在 Shell 脚本中起作用,但在命令行中不起作用?

标签 linux bash scripting command-line shell

我在发帖前快速搜索了一下,但找不到任何类似的帖子。让我知道它们是否存在。


正在执行的命令看起来很简单。目录列表用作函数的输入。

该目录包含一堆名为“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/

相关文章:

BASH 测试存在目录,变量作为路径

bash - 将数据存储在数组中(bash 脚本)

c# - 使用 SSH.NET SshClient.RunCommand 执行的命令 (.4gl) 失败,返回 "No such file or directory"

linux - switch_console.c :1053 We've become an orphan, 不再有控制台供我们使用

linux - 向我发送电子邮件并重启 tomcat 攻击 DDOS 的脚本

linux - 资源linux脚本,禁用/刷新额外输入

linux - 如何检查用户是否登录了更多天?

linux - 运行脚本跳过文件

bash - 我无法从索引数组中 Ping IP,但可以使用关联数组

c++ - 将脚本语言集成到 C++ 应用程序中