Tag: shell

$$在shell中意味着什么?

我曾经读过一种在临时文件的shell中获取唯一文件名的方法是使用双美元符号( $$ )。 这确实会产生一个不断变化的数字…但是如果您重复地调用它,它会返回相同的数字。 (解决的办法就是用这个时间。) 我很想知道$$实际上是什么,为什么会build议这种方法来生成唯一的文件名。

在Ruby中不断从STDOUT中读取外部进程

我想通过ruby脚本从命令行运行blender,ruby脚本将逐行处理由blender提供的输出,以更新GUI中的进度条。 搅拌机是我需要读取的标准输出的外部过程并不重要。 当搅拌机进程仍在运行时,我似乎无法捕获搅拌机通常打印到shell的进度消息,而我尝试了几种方法。 我似乎总是在搅拌机退出后访问搅拌机的标准输出,而不是在搅拌机仍然运行的时候。 这是一个失败尝试的例子。 它确实获得并打印搅拌机输出的前25行,但只有在搅拌机过程退出后: blender = nil t = Thread.new do blender = open "| blender -b mball.blend -o //renders/ -F JPEG -x 1 -f 1" end puts "Blender is doing its job now…" 25.times { puts blender.gets} 编辑: 为了使它更清楚一些,调用blender的命令在shell中返回一个输出stream,指示进度(部分1-16完成等)。 似乎任何调用“获取”输出都被阻止,直到搅拌器退出。 问题是如何在搅拌机仍在运行时访问此输出,因为搅拌机将其输出到shell。

如何确定给定的Linux是32位还是64位?

当我键入uname -a ,它会给出以下输出。 Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 i686 i686 i386 GNU/Linux 我怎么知道给定的操作系统是32位或64位? 编写configure脚本时这很有用,例如:我在为什么构build?

Bash脚本:While-Loop子壳困境

我想计算一个给定目录内的所有* bin文件。 最初我正在使用一个for-loop : var=0 for i in *ls *bin do perform computations on $i …. var+=1 done echo $var 但是,在某些目录中有太多的文件导致错误: Argument list too long 因此,我正在用一个pipe道while-loop尝试它: var=0 ls *.bin | while read i; do perform computations on $i var+=1 done echo $var 现在的问题是通过使用pipe子的子壳来创build。 因此, echo $var返回0 。 我该如何处理这个问题呢? 原来的代码: #!/bin/bash function entropyImpl { if [[ […]

“〜/ Desktop / test.txt:没有这样的文件或目录”

我写了这个脚本: #!/bin/bash file="~/Desktop/test.txt" echo "TESTING" > $file 脚本不起作用; 它给了我这个错误: ./tester.sh: line 4: ~/Desktop/test.txt: No such file or directory 我究竟做错了什么?

在VBA中从shell命令捕获输出值?

find这个functionhttp://www.cpearson.com/excel/ShellAndWait.aspx 但是也需要从shell输出中捕获输出。 任何代码build议?

运行时的exec()方法不redirect输出

Process p = Runtime.getRuntime().exec("sh somescript.sh &> out.txt"); 我正在使用Java运行此命令。 脚本正在运行,但不会将其streamredirect到文件。 而且, out.txt文件没有被创build。 这个脚本运行良好,如果我在shell上运行它。 有任何想法吗?

在PowerShell中的数组的所有对象上select一个属性的值

比方说,我们有一个对象数组$对象。 假设这些对象具有“名称”属性。 这是我想要做的 $results = @() $objects | %{ $results += $_.Name } 这有效,但可以以更好的方式完成吗? 如果我做这样的事情: $results = objects | select Name $results是一个具有Name属性的对象的数组。 我想$结果包含一个名称的数组。 有没有更好的办法?

如何从batch file运行PowerShell脚本

我想在PowerShell中运行这个脚本。 我在桌面ps.ps1下面的脚本保存为ps.ps1 。 $query = "SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2" Register-WMIEvent -Query $query -Action { invoke-item "C:\Program Files\abc.exe"} 我已经做了一个批处理脚本来运行这个PowerShell脚本 @echo off Powershell.exe set-executionpolicy remotesigned -File C:\Users\SE\Desktop\ps.ps1 pause 但是我得到这个错误:

如果远程TCP端口已打开,则从shell脚本进行testing

我正在寻找一种快速而简单的方法,用于从Shell脚本中正确testing远程服务器上是否打开给定的TCP端口。 我已经设法做到这一点与telnet命令,它可以正常工作,当端口打开,但似乎并没有超时,当它不是,只是挂在那里… 这是一个示例: l_TELNET=`echo "quit" | telnet $SERVER $PORT | grep "Escape character is"` if [ "$?" -ne 0 ]; then echo "Connection to $SERVER on port $PORT failed" exit 1 else echo "Connection to $SERVER on port $PORT succeeded" exit 0 fi 我要么需要更好的方法,要么强制telnet超时,如果它不能在8秒内连接,并返回一些我可以在壳牌(返回代码,或在标准输出string)捕获的东西。 我知道Perl方法,它使用IO :: Socket :: INET模块,编写了一个testing端口的成功脚本,但是如果可能的话,宁愿避免使用Perl。 注意:这是我的服务器正在运行(我需要从这里运行) SunOS 5.10 Generic_139556-08 i86pc i386 […]