- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在工作中使用一个名为 AFNI 的程序,我们都不是程序员,但我们有足够的知识来应对更多的问题。通常,当我们有很多要运行 AFNI 的文件时,我们必须复制并粘贴命令并在记事本中编辑文件名,然后再将其复制到终端,这可能会导致一些错误。我们正在尝试通过使用 shell 脚本来简化这一过程。
我正在尝试在其中包含 .nii 文件的文件夹上运行 foreach 循环,我希望将这些文件名附加到以“3dclustsim”开头的行的末尾。我希望将文件名放在 $name 所在的位置,以便在该文件上执行命令。
到目前为止,我有:
#!/bin/tcsh
clear
set path = ($path /home/lab/abin)
afni
foreach name (`*.nii`)
3dclustsim -fwhmxyz 16 16 16 -pthr 0.05 0.01 0.005 0.001 -athr 0.05 -nodec -iter 10000 -OKsmallmask -mask /home/lab/Desktop/Masks/$name
end
我没有对上面的任何迭代或我在网上找到的任何修改感到幸运。我知道很多人对 C shell 不屑一顾,但这个程序只能在终端的 Unix/Linux/Mac 机器上的 tcsh 中运行。
如果我还需要提供任何其他信息,请告诉我。
最佳答案
你走在正确的轨道上。
尝试添加/替换这个
cd /path/to/dir/with/nii_files
/bin/ls -l *.nii
foreach name ( * )
3dclustsim -fwhmxyz 16 16 16 -pthr 0.05 0.01 0.005 0.001 -athr 0.05 -nodec -iter 10000 -OKsmallmask -mask /home/lab/Desktop/Masks/$name
end
您的 afni
程序可能正在读取一个配置文件,该文件告诉它把文件放在哪里。您必须 cd
到正确的目录才能处理它们。
您可能做对了,但是您收到一条错误消息 *.nii : No Match
告诉您您要处理的文件不存在。
但是,您的问题中令人困惑的部分是您用反引号将 *.nii
括起来(在 for 循环中)。反引号的意思是“找到结束的反引号,然后获取封闭的字符串并将其作为命令执行。如果该目录中确实没有文件,您应该会看到类似
foreach name (`nonesuch`)
nonesuch : Command not Found.
但是,也就是说,如果您使用 cd
和 ls
,您可以向自己证明您在正确的目录中,然后文件应该是已处理。
此外,如果您使用 Windows 编辑器创建此脚本,然后在 Unix/Linux 上执行,则需要
dos2unix ./myScript.sh
chmod 755 ./myScript.sh
#then you can run it
./myScript.sh
健康教育
关于linux - 使用 afni 程序在 tcsh 中进行 foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27968185/
我在工作中使用一个名为 AFNI 的程序,我们都不是程序员,但我们有足够的知识来应对更多的问题。通常,当我们有很多要运行 AFNI 的文件时,我们必须复制并粘贴命令并在记事本中编辑文件名,然后再将其复
我是一名优秀的程序员,十分优秀!