我有一个有效的bash脚本(它打印输出),但是当我运行该程序时,最后没有找到/ bin / sh错误,makefile错误127。我什至没有bin / sh,我写bin / bash。analisi.sh
是脚本,这是makefile的一部分,supermercato.PID
是超级线程线程的PID的保存位置。
./run:
cd src; \
(./supermercato & echo $$! > supermercato.PID) & \
cd ..; \
sleep 25s; \
kill -1 $$(cat src/supermercato.PID); \
chmod +x ./analisi.sh
./analisi.sh $$(cat src/supermercato.PID); \
这是脚本analisi.sh
,test.log
是写入输出的文件
#!/bin/bash
if [ -f "test.log" ]; then
while read line; do echo $line; done < test.log
else
echo "$0:Errore" 1>&2
fi
这是错误的示例(SIGHUP是项目的一部分)。TEST写在名为test.log的日志文件中,该文件是我从脚本中读取的。
Received SIGHUP
./analisi.sh $(cat src/supermercato.PID); \
******TEST******
/bin/sh: 1: : not found
make: *** [Makefile:15: run] Error 127
这行:
./analisi.sh $$(cat src/supermercato.PID); \
有一个尾随空格(!)并且前一个命令以分号结尾,因此BASH认为您正在尝试执行两个命令:./analisi.sh
后跟一个名称由单个文字空格字符组成的命令。
您可以在终端中重现它。在反斜杠后放置一个空格,然后按Enter:
$ echo hey; \
hey
-bash: : command not found
$
还要检查错误消息的格式:
$ wow
-bash: wow: command not found
因此,格式为:
<BASH>: <line number>: <command_name>: not found
就你而言
/bin/sh: 1: : not found
请注意这里有两个空格:: :
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句