Tag: shell

从脚本更改当前目录

是否有可能从脚本更改当前目录? 我想为bash中的目录导航创build一个util。 我创build了如下所示的testing脚本: #!/bin/bash cd /home/artemb 当我从bash shell执行脚本时,当前目录不会改变。 是否有可能从脚本中更改当前shell目录?

是否有一个Unix工具预加时间戳到标准input?

我最终在Python中为此写了一个快速的小脚本,但是我想知道是否有一个实用程序可以给文本添加文本,在文本中添加一些文本 – 在我的具体情况下是时间戳。 理想情况下,使用会是这样的: cat somefile.txt | prepend-timestamp (在你回答sed之前,我试过这个: cat somefile.txt | sed "s/^/`date`/" 但是,执行sed时只会计算一次date命令,所以相同的时间戳被错误地添加到每行。

从Grep RegEx捕获组

sh (Mac OSX 10.6)中有这个小脚本来查看文件数组。 Google在这一点上停止了帮助: files="*.jpg" for f in $files do echo $f | grep -oEi '[0-9]+_([az]+)_[0-9a-z]*' name=$? echo $name done 到目前为止(显然,对于你的shell的大师) $name只能保存0,1或2,这取决于如果grep发现文件名符合提供的问题。 我想要捕捉什么是parens ([az]+) ,并将其存储到一个variables 。 如果可能,我只想使用grep 。 如果没有,请不要Python或Perl等sed或类似的东西 – 我是新的壳,并希望从* nix纯化angular攻击这个。 另外,作为一个超酷的bonu s,我很好奇我如何在shell中连接string? 我捕获的是在$ name存储的string“somename”,我想添加string“.jpg”到它的末尾,我可以cat $name '.jpg' ? 请解释发生了什么,如果你有时间的话。

在bash中,我如何将一个function键绑定到一个命令?

例如:我想把F12键绑定到命令echo "foobar"这样每次我点击F12时 ,“foobar”就会被打印到屏幕上。 理想情况下,它可以是任意的shell命令,而不仅仅是内置命令。 这个怎么办?

制作shell脚本守护程序的最佳方法是什么?

我想知道是否有一个更好的方法来创build一个守护进程,等待只使用sh的守护进程: #! /bin/sh trap processUserSig SIGUSR1 processUserSig() { echo "doing stuff" } while true; do sleep 1000 done 特别是,我想知道是否有办法摆脱循环,仍然有东西在听信号。

运行作业时的参数解释

$h = "host1.example.com" $code = { $(Get-WmiObject -Class "Win32_ComputerSystem" -Namespace "root\cimv2" -ComputerName $h) } $timeout = 5 $jobstate = $(Wait-Job -Job ($job = $(Start-Job -ScriptBlock $code)) -Timeout $timeout) $wmicomobj = $(Receive-Job -Job $job) 为什么上面的代码块会引发下面的错误? 无法validation参数“ComputerName”上的参数。 参数是null或 空。 提供一个非空或空的参数,然后尝试命令 再次。 + CategoryInfo:InvalidData:(:) [Get-WmiObject],ParameterBindingValidationException + FullyQualifiedErrorId:ParameterArgumentValidationError,Microsoft.PowerShell.Commands.GetWmiObjectCommand + PSComputerName:本地主机 我想用这个实现一个循环中获取多个主机的WMI对象的超时。 但首先我需要通过作业执行得到结果。

使用awk与variables

x=3 A=`echo $A|awk '{print $x}'` echo $A 不打印3.我如何使用awk的variables*

试图将一个string分成两个variables

我试图将一个string分成两个variables(不必使用while循环): var="hello:world" IFS=':' read var1 var2 <<< $var echo "var1: $var1" echo "var2: $var2" 但我没有得到所需的结果: var1: 'hello world' var2: '' 有人可以解释一下,如果可以这样做(或类似的方式)吗?

如何将subprocess调用传递给文本文件?

subprocess.call(["/home/myuser/run.sh", "/tmp/ad_xml", "/tmp/video_xml"]) 现在我有一个脚本,我跑。 当我运行它,它击中这条线,它开始打印的东西,因为run.sh打印在它。 我如何将这个pipe道文本文件? (如果可能,也打印)

将所有variables从一个shellcript传递给另一个?

所以可以说我有一个名为test.sh的shell脚本 有: #!/bin/bash # TESTVARIABLE=hellohelloheloo ./test2.sh 我的test2.sh看起来像这样 #!/bin/bash # echo ${TESTVARIABLE} 这不起作用。 我不想将所有variables作为parameter passing,因为这是过度的。 有不同的方法吗?