为什么这个bash脚本一次又一次地运行?
这个脚本不知何故陷入了一个循环,它一次又一次地开始 这是剧本为什么这个bash脚本一次又一次地运行?,bash,shell,scripting,Bash,Shell,Scripting,这个脚本不知何故陷入了一个循环,它一次又一次地开始 这是剧本 #!/bin/bash # usage decimator.sh "$1" "$2" echo $1 echo $2 bin/decimator.sh --pdfinfile "$1" --outdir scr --tldr "$2" 这是它开始的历史 1997 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumb
#!/bin/bash
# usage decimator.sh "$1" "$2"
echo $1
echo $2
bin/decimator.sh --pdfinfile "$1" --outdir scr --tldr "$2"
这是它开始的历史
1997 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumbing down Altmetrics"
1998 git pull
1999 lart ~/pagekicker-community/test/data/
2000 cp ../test/data/Altmetrics_for_LibrariansAltmetric.pdf ~/pagekicker-community/test/data .
2001 cp ../test/data/Altmetrics_for_LibrariansAltmetric.pdf ~/pagekicker-community/test/data/.
2002 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumbing down Altmetrics"
2003 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumbing down Altmetrics"
2004 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumbing down Altmetrics"
2005 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumbing down Altmetrics"
2006 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumbing down Altmetrics"
2007 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumbing down Altmetrics"
2008 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumbing down Altmetrics"
2009 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumbing down Altmetrics"
2010 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumbing down Altmetrics"
2011 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumbing down Altmetrics"
2012 ../test/decimator-test.sh ../test/data/Altmetrics_for_LibrariansAltmetric.pdf "dumbing down Altmetrics"
我重新启动了系统,并进行了ps aux | grep测试,以查看进程是否存在。没有快乐
它仍在这样做,一千行历史记录之后…经过推理,问题似乎是历史记录以循环的形式输入到命令行并找到了 我跑:
history -c
history -w
这解决了问题。我仍然不知道它是如何开始的。我们无法根据您发布的三行脚本进行猜测。请参阅,以获取有关包含足够信息以使您的问题具有可回答性的提示。您期望得到什么?这就好像该行被反复输入到命令行中一样。我不是在做!它应该运行一次,然后停止。@FredZimmermann:这个问题是合理的,但是你提供的信息不是最重要的。您的脚本中显然没有显示这种行为的内容。真正有趣的一点是您发布的历史文件中的重复条目。可能bin/decimator.sh中的某些内容(或其中的一些附属脚本)不仅读取并执行历史记录条目,还将新执行的行添加回历史记录中(可能是因为shell显式设置为interactive)。如果您现在连续运行两次命令,它是否会以循环开始?如果您可以复制它,顺便说一句,
set-x
——或者bash-x您的脚本
——非常非常非常是您的朋友。(如果它显示了调试陷阱或类似的--definePS4=':$BASH_SOURCE:$LINENO+'
使set-x
日志更有用,如果陷阱或其他负责的钩子正在调用脚本中定义的代码,我不会感到惊讶)。我理解这一点!