我编写了一个bash脚本,该脚本确实可以执行我想要的操作,但是会出现以下错误:
close failed in file object destructor: sys.excepthook is missing lost sys.stderr
我完全不知道如何解决这个问题。这是脚本:
#!/bin/bash
usage () { echo "${0##*/} inputfile outputfile"; exit 1; }
(($#==2)) || usage
INPUTFILE="$1"
OUTPUTFILE="$2"
# All that is written between between the 'cat' command and
#+ 'EOF' will be sent to the output file.
cat <<EOF >$OUTPUTFILE
$(date "+Generated on %m/%d/%y at %H:%M:%S")
DATA AUDIT: $1
------------
COLUMN NAMES
------------
$(csvcut -n $INPUTFILE)
---------------------------------------
FIRST TEN ROWS OF FIRST FIVE COLUMNS
---------------------------------------
$(csvcut -c 1,2,3,4,5 $INPUTFILE | head -n 10)
------------
COLUMN STATS
------------
$(csvcut $INPUTFILE | csvstat )
---END AUDIT
EOF
echo "Audited!"
我对shell脚本很陌生,对python也很陌生。我将不胜感激。
当将Python 2.6.2脚本的输出管道传输到Ubuntu
9.04上的head
命令时,我看到了此错误bash
。我添加了try
块以关闭stdout
并stderr
在退出脚本之前:
try:
sys.stdout.close()
except:
pass
try:
sys.stderr.close()
except:
pass
我不再看到错误。
问题内容: 问题:我收到此错误消息: 导出:错误的解释器:无此类文件或目录 当我执行此bash脚本时: 但是bash路径似乎是正确的: 我究竟做错了什么?还是这是Lucid Lynx的错误? 我做了 问题答案: 第一行告诉Linux在哪里可以找到解释器。该脚本还应该可以通过执行,就像您执行的一样。 您很有可能使用Windows编辑器创建了此文件,该编辑器将在每行的末尾放置一个。这是dos / wi
问题内容: 我想在Bash脚本中引发错误,显示消息“测试用例失败!!”。如何在Bash中做到这一点? 例如: 问题答案: 这取决于您要将错误消息存储在何处。 您可以执行以下操作: 或以下内容: 引发异常时,将停止程序的执行。 您还可以使用类似“ 哪里是您可能要返回到操作系统的错误代码”(从0到255)的方法。在这里,只是可以退出的随机代码。当您需要向OS指示程序异常停止(例如发生错误)时,您需要将
我想在Bash脚本中引发一个错误,消息为“测试用例失败!!!”。如何在Bash中做到这一点? 例如:
问题内容: 我正在尝试制作应该像这样使用的shell脚本: 然后,脚本将ocr将图像文件转换为文本文件。到目前为止,这是我想出的: 但是我不知道如何获得和价值观。关于如何做的任何想法? 问题答案: 您提供给bashscript的参数将出现在变量中,并且数字代表该参数。是命令本身。 参数由空格分隔,因此,如果在命令中提供和,它们也将以这些变量结尾,因此: 你会得到: 省略和可能更容易,例如: 然后您
我正在使用两个版本的ROS,彼此相邻。要使用它,我必须为特定版本提供一些环境变量。我想创建一个脚本来实现这一点。但是如果我创建一个如下的脚本,变量没有设置,它们可能是在子shell中设置的。如何将文件源文件发送到主终端外壳? source.sh: 以下是我如何调用source。上海: 更新:通过采购来源。正如答案中所建议的那样,我现在可以看到正在设置的变量。
我想测试传递给Linux外壳脚本的参数数量,如果参数数量不是或,它应该打印一些东西,不幸的是它不起作用,有人能解释一下我做错了什么吗?
问题内容: 我正在尝试使用命令记录bash会话。 该命令是从bash脚本开始执行的,但是一旦执行,bash脚本就会终止。 我尝试使用各种组合来始终以相同的结果调用命令(调用该命令后立即终止bash脚本)。我得到的输出如下: 我也尝试过最后用a来调用命令,但是再次失败了。 谁能告诉我如何从bash脚本调用命令? 谢谢 问题答案: 您的Shell脚本没有终止。它仍在运行。您会收到提示,因为正在生成新的
问题内容: 我是bash的新手,但我一直想尝试取消以下命令: 如果我已连接到互联网,则此条件返回true。我希望它以相反的方式发生,但是放在任何地方似乎都行不通。 问题答案: 您可以选择: 分别反转以下表达式的返回值。