Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux TCSH foreach语法错误:“引用”;(“意外_Linux_Shell_Unix_Tcsh - Fatal编程技术网

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这样的内容作为第一行。祝您好运。这是我的问题,谢谢!