【发布时间】:2022-01-03 10:56:21
【问题描述】:
我的默认 shell 是 Ubuntu 14.04 中的 bash。我有一个名为 clean.sh 的 csh 脚本文件,其中包含以下 make 命令:
#! /bin/csh -f
make -f commande.make del
而commande.make 有
CKHOME=../CHEMKIN/DATA_BASES
LIN_DATA=${CKHOME}/LIN_FILES/
LINK_CKTP=${CKHOME}/LINK_CKTP_FILES/
#-----------------------------------------------------
include schema_cinetique.make
LINKFILE=${NAME}_LINK
LINKTPFILE=${NAME}_LINKTP
LINKFILE_OLD=${NAME_OLD}_LINK
LINKFILE_NEW=${NAME_NEW}_LINK
#-----------------------------------------------------
cplink :
${COPY} ${LINK_CKTP}${LINKFILE} LINK
cplink2 :
${COPY} ${LINK_CKTP}${LINKFILE} LINKZ1
tplink :
${COPY} ${LINK_CKTP}${LINKTPFILE} LINKTPZ1
calcul :
${COPY} jobtimp1 LJOBNZ1
${COPY} unsteadyf.dat1 DATZ1
del :
${DELETE} LINKZ1 LINKTPZ1 LJOBNZ1 DATZ1 SOLASUZ1
我打开终端并移动到该位置并尝试
./clean.sh
或
csh clean.sh &
或
csh -f clean.sh
没有任何效果。
我在终端中得到以下行,
LINKZ1 LINKTPZ1 LJOBNZ1 DATZ1 SOLASUZ1
make: LINKZ1: Command not found
make: *** [del] Error 127
那么,如何运行clean.sh文件?
【问题讨论】:
-
Nothing worked是什么意思?你能发布错误信息吗? -
您的脚本使用
commande.make。但是您的文件名为command.make。 -
@hek2mgl,请再次检查编辑后的问题,出现错误
-
无需更改任何内容。只需以
bash clean.sh运行即可。您可能想要删除/更新最初的 #!线,如果你愿意。或者,您也可以直接从命令行调用make(为什么要使用脚本,如果它所做的只是调用make???)但是,我觉得有些地方出了问题Makefile 本身,因此这与恰好用于调用 make 的 shell 无关。不幸的是,你的帖子在这方面是不完整的,所以我在这里帮不上什么忙。好像make变量DELETE是空的。 -
如果您在与
make命令相同的命令行中指定export,则它实际上并不是必需的。这仅在命令执行期间设置变量。答案实际上试图解释这一点;如果您需要更详细的解释,也许可以阅读export的作用。