`source` 命令:即使 `ls` 明确列出了它,也找不到 .csh 和 .sh 文件?

`source` 命令:即使 `ls` 明确列出了它,也找不到 .csh 和 .sh 文件?

在此输入图像描述

正如您所看到的,由于某种原因,该source命令表示未找到该文件,即使该文件显然位于目录中。我cat还显示了输出的第一位:它显示了#!/bin/bash -p我认为该命令正确的第一行source

freesurfer 安装指南 (https://surfer.nmr.mgh.harvard.edu/fswiki/DownloadAndInstall) 告诉你运行这两行

export FREESURFER_HOME=/usr/local/freesurfer

source $FREESURFER_HOME/SetUpFreeSurfer.sh

我也尝试过这个,但我得到了同样的未找到错误。我确定目录是正确的。

抱歉,如果这是一个愚蠢的问题,我是一个巨大的初学者。任何帮助表示赞赏!

答案1

shell 抱怨的是source命令,而不是你的文件。

你的shell好像是/bin/sh,可能是dashshell。当dash运行为 时sh,它是一个 POSIX shell,因此没有source命令。该source命令是标准的扩展,通常与标准.(点)命令相同或相似。

因此,如果您想在/bin/shshell 中获取这些文件,请使用以下.命令:

. "$FREESURFER_HOME/SetUpFreeSurfer.sh"

bash或者,将您的 shell 更改为实现该命令的 shell,例如source

另请注意,该#!行在这些类型的“点脚本”中是无关紧要的,因为脚本是由当前 shell 读取的,而不是由外部解释器读取的。

相关内容