Linux TCSH foreach语法错误:“引用”;(“意外
所以我有基本的脚本:Linux TCSH foreach语法错误:“引用”;(“意外,linux,shell,unix,tcsh,Linux,Shell,Unix,Tcsh,所以我有基本的脚本: foreach x (*.nii) mri_convert -i $x -o $x:r.mgz -it nii -ot mgz end 本质上,它应该将所有.nii文件的文件类型更改为.mgz。当我在tcsh中运行此操作时,我收到: ./test1: 1: ./test1: Syntax error: "(" unexpected 我真的不确定为什么会出现这个错误,因为foreach的正确语法通常是: foreach x (1 2 3) e
foreach x (*.nii)
mri_convert -i $x -o $x:r.mgz -it nii -ot mgz
end
本质上,它应该将所有.nii文件的文件类型更改为.mgz。当我在tcsh中运行此操作时,我收到:
./test1: 1: ./test1: Syntax error: "(" unexpected
我真的不确定为什么会出现这个错误,因为foreach的正确语法通常是:
foreach x (1 2 3)
echo $x
end
我弄错了吗?如果您的计算机上安装了tcsh或csh shell,那么至少应该运行以下脚本而不出错
#!/bin/tcsh
foreach x (*.nii)
mri_convert -i $x -o $x:r.mgz -it nii -ot mgz
end
听起来您运行脚本时使用的是
sh
而不是tcsh。请确保脚本的第一行是#!/usr/bin/env tcsh
。使用tcsh发出run命令是不够的。有些shell需要空格字符来分隔语法元素。(我现在记不起来[t]csh是否需要这样做)。可能是foreach x(*.nil)
会有帮助。但请同意,您需要像#!/bin/tcsh这样的内容作为第一行。祝您好运。这是我的问题,谢谢!