Tag: shell

运行没有Windows控制台出现的Python脚本

有什么办法可以在Windows XP中运行一个Python脚本,而不需要立刻出现一个命令shell? 我经常需要使用Python自动化WordPerfect(用于工作),即使我的脚本没有输出,如果我从没有WP执行它,一个空的shell仍然会popup一秒钟,然后消失。 有什么办法可以防止这个? 某种输出redirect也许?

从命令行运行JAR文件并指定classpath

我编译了一个JAR文件,并在清单中指定了Main-Class(我使用了Eclipse Exportfunction)。 我的依赖关系都在lib目录下。 我似乎无法得到直接的答案如何执行我的JAR文件,同时指定它应该使用lib/*作为类path。 我试过了: ]$ java -jar -cp .:lib/* MyJar.jar ]$ java -cp .:lib/* -jar MyJar.jar ]$ java -cp .:lib/* com.somepackage.subpackage.Main 等等… 每个给出一个错误说: Error: Could not find or load main class …. 或者给出NoClassDefFoundError指示没有find库。 我什至试图重buildJAR文件,并包括lib目录和内容,但仍然没有骰子… 如何从命令行执行JAR文件并指定要使用的类path?

如何从shell执行XPath单行程?

有没有一个软件包,Ubuntu和/或CentOS,有一个命令行工具,可以像foo //element@attribute filename.xml或foo //element@attribute < filename.xml一样执行XPath并逐行返回结果? 我正在寻找的东西,可以让我只是apt-get install foo或yum install foo ,然后只是开箱即用,没有包装或其他适应需要。 以下是一些接近的例子: 引入nokogiri。 如果我写这个包装器,我可以按照上面描述的方式调用包装器: #!/usr/bin/ruby require 'nokogiri' Nokogiri::XML(STDIN).xpath(ARGV[0]).each do |row| puts row end XML :: XPath的。 将使用这个包装: #!/usr/bin/perl use strict; use warnings; use XML::XPath; my $root = XML::XPath->new(ioref => 'STDIN'); for my $node ($root->find($ARGV[0])->get_nodelist) { print($node->getData, "\n"); } 来自XML :: XPath的xpath返回的噪音太多, — NODE –和attribute […]

来自subprocess命令的实时输出

我使用Python脚本作为stream体动力学代码的驱动程序。 当运行模拟时,我使用subprocess.Popen来运行代码,将stdout和stderr的输出收集到subprocess.PIPE —然后我可以打印(并保存到日志文件)输出信息,并检查是否有错误。 问题是,我不知道代码是如何进展的。 如果我直接从命令行运行它,它会给出关于它在什么时候迭代的输出,什么时间,什么是下一个时间步,等等。 有没有一种方法来存储输出(用于logging和错误检查),并且还产生实时stream输出? 我的代码的相关部分: ret_val = subprocess.Popen( run_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True ) output, errors = ret_val.communicate() log_file.write(output) print output if( ret_val.returncode ): print "RUN failed\n\n%s\n\n" % (errors) success = False if( errors ): log_file.write("\n\n%s\n\n" % errors) 本来我是通过teepipe道run_command ,以便副本直接到日志文件,并仍然输出stream到terminal – 但这样我不能存储任何错误(我知道)。 编辑: 临时解决scheme: ret_val = subprocess.Popen( run_command, stdout=log_file, stderr=subprocess.PIPE, shell=True ) while not […]

用BOMsearchUTF-8文件的优雅方法?

为了进行debugging,我需要recursionsearch所有以UTF-8字节顺序标记(BOM)开头的文件。 我目前的解决scheme是一个简单的shell脚本: find -type f | while read file do if [ "`head -c 3 — "$file"`" == $'\xef\xbb\xbf' ] then echo "found BOM in: $file" fi done 或者,如果你更喜欢简短,难以理解的单行: find -type f|while read file;do [ "`head -c3 — "$file"`" == $'\xef\xbb\xbf' ] && echo "found BOM in: $file";done 它不适用于包含换行符的文件名,但是这样的文件无论如何都是不可预料的。 有没有更短或更优雅的解决scheme? 文本编辑器有没有有趣的文本编辑器或macros?

等待Shell完成,然后格式化单元格 – 同步执行一个命令

我有一个使用shell命令调用的可执行文件: Shell (ThisWorkbook.Path & "\ProcessData.exe") 可执行文件执行一些计算,然后将结果导出回Excel。 我希望能够在导出后更改结果的格式。 换句话说,我需要Shell命令首先等待,直到可执行文件完成其任务,导出数据,然后执行下一个命令进行格式化。 我尝试了Shellandwait() ,但没有多less运气。 我有: Sub Test() ShellandWait (ThisWorkbook.Path & "\ProcessData.exe") 'Additional lines to format cells as needed End Sub 不幸的是,格式化在可执行文件完成之前首先发生。 仅供参考,这里是我使用ShellandWait的完整代码 ' Start the indicated program and wait for it ' to finish, hiding while we wait. Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As […]

我怎样才能在bash中重复一个字符?

我怎么能用echo来做到这一点? perl -E 'say "=" x 100'

如何检测我的shell脚本是否通过pipe道运行?

如何从shell脚本中检测其标准输出是否定位到terminal或者是否通过pipe道连接到另一个进程? (例子:我想添加转义码来着色输出,但是只有在交互式运行时,而不是在input时,类似于ls –color所做的。

用或不用导出定义一个variables

什么是export ? 有什么区别: export name=value 和 name=value

如何确定我正在工作的当前shell?

我如何确定我正在使用的当前shell? ps命令的输出是否足够? 这怎么能在不同的UNIX中完成呢?