这个命令有什么作用?setenv BIN `uname -s``uname -r | cut -d. -f1`

这个命令有什么作用?setenv BIN `uname -s``uname -r | cut -d. -f1`

我正在尝试安装 I/O API 以使用 CMAQ。我正在关注这些说明。首先,我下载了 gzip 文件 ioapi-3.2.tar.gz,然后解压。但是我在第 4 步卡住了,内容如下:

  1. 对于每个所需的配置,setenv BIN <machinetype>,其中<machinetype>匹配其中一个的扩展名ioapi/Makeinclude.*。然后执行顶层 make dirs 来构建对象目录。生成 BIN 的常用模式是

    setenv BIN `uname -s``uname -r | cut -d. -fI`
    

    然后通过附加任何编译器细节(例如 F90 或调试编译配置)来修改结果。

    Linux 版本 2 和 3 是二进制兼容的,因此Linux2两者都使用 (最新版本的 也类似SunOS)。例如,请注意,对于Linux2_×86*,GNU 有不同的(且不兼容的)变体海湾合作委员会/、英特尔如果/国际刑事法院、莱希-富士通IF95/GNU 海湾合作委员会和波特兰集团pgf90/PGCC 简介此外,后者与 Portland Group pf90/GNU cc 不兼容(当后者用于构建 libnetcdf.a 时,就像 RedHat 上供应商提供的库一样这种不兼容性是近年来安装问题最大的单一诱因!)。

我对 Linux 还很陌生,对构建程序更是一窍不通,不知道这个指令是什么意思。我猜我必须对文件夹中包含的每个我想要安装的 I/O API 版本使用“setenv BIN”。但是我不知道是否应该先使用setenv BIN <machinetype>然后

setenv BIN `uname -s``uname -r | cut -d. -f1`

或者我是否应该只使用其中之一。如果是这样,我不知道两者中的哪一个。我真的不知道这些命令的用途,这没有帮助。由于我在这里很迷茫,任何能澄清我的问题的信息都会有所帮助。如果相关的话,我将使用 GCC 来构建 CMAQ。谢谢!

答案1

添加echo以查看扩展的命令:

echo setenv BIN `uname -s``uname -r | cut -d. -f1`

查看嵌入的命令在你的系统上执行的操作:

uname -s
uname -r
uname -r | cut -d. -f1

它们有意义吗?

但请注意,这setenv是内置的 C-shell ( csh)。Ubuntu 默认使用 Bash shell,其中等效命令是:

export BIN="`uname -s``uname -r | cut -d. -f1`"

注意 bash 与 C-shell 的其他差异,请在线搜索。阅读man bash csh

在 或 中bashcsh环境变量(例如 BIN)只能保存其中存储的最后一个值,因此请查阅文档和 INSTALL 文件。您可能误入歧途。

相关内容