batch_fsl_preprocessed.sh: line 2: $'\r': command not found batch_fsl_preprocessed.sh: line 7: $'\r': command not found batch_fsl_preprocessed.sh: line 8: $'\r': command not found batch_fsl_preprocessed.sh: line 22: syntax error near unexpected token `$'do\r'' 'atch_fsl_preprocessed.sh: line 22: `for subject in $(ls $data_dir); do
这些错误提示表明你的脚本文件包含 Windows 风格的换行符(\r\n
),而在 Unix/Linux 系统中,脚本通常使用 Unix 风格的换行符(\n
)。\r
(回车符)在 Unix/Linux 系统中被视为一个普通字符,当 Bash 解析脚本时,它会把 \r
当作命令的一部分,从而导致错误。
解决方法
使用 dos2unix
工具
在 Ubuntu/Debian 系统上
sudo apt-get install dos2unix
安装完成后,使用以下命令将脚本文件转换为 Unix 风格
dos2unix batch_fsl_preprocessed.sh