这应该是一个简单的任务,但我已经看到了一些尝试,如何获得执行cmdlet所在的目录path混合成功。 例如,当我执行c:\ temp \ myscripts \ mycmdlet.ps1,该文件在c:\ temp \ myscripts \ settings.xml中有一个设置文件时,我希望能够将c:\ temp \ myscripts存储在mycmdlet的.ps1。 这是一个有效的解决scheme(尽pipe有点麻烦): $invocation = (Get-Variable MyInvocation).Value $directorypath = Split-Path $invocation.MyCommand.Path $settingspath = $directorypath + '\settings.xml' 另一个人提出这个解决scheme只适用于我们的testing环境: $settingspath = '.\settings.xml' 我非常喜欢后一种方法,并且更喜欢每次都必须将文件path作为参数进行parsing,但我无法使其在我的开发环境中工作。 有没有人有什么build议? 它与PowerShell的configuration有什么关系?
我在/etc/cron.daily/apf中find这段代码 #!/bin/bash /etc/apf/apf -f >> /dev/null 2>&1 /etc/apf/apf -s >> /dev/null 2>&1 这是冲洗和重新加载防火墙。 我不明白>> /dev/null 2>&1部分。 在cron中做这个的目的是什么? 这是凌驾于我的防火墙规则。 我可以安全地删除这个cron作业吗?
我有一个bash脚本,看起来像这样: #!/bin/bash wget LINK1 >/dev/null 2>&1 wget LINK2 >/dev/null 2>&1 wget LINK3 >/dev/null 2>&1 wget LINK4 >/dev/null 2>&1 # .. # .. wget LINK4000 >/dev/null 2>&1 但处理每一行直到命令完成,然后移动到下一个非常耗时,我想一次处理20行,然后当他们完成了另外20行处理。 我想到了wget LINK1 >/dev/null 2>&1 &发送命令到后台进行,但是这里有4000行,这意味着我会有性能问题,更不用说限制在多less个进程中我应该同时开始,所以这不是一个好主意。 我现在正在考虑的一个解决scheme是检查其中一个命令是否仍在运行,例如20行之后我可以添加这个循环: while [ $(ps -ef | grep KEYWORD | grep -v grep | wc -l) -gt 0 ]; do sleep 1 done 当然在这种情况下,我将需要追加&到行的末尾! […]
假设我有如下的脚本: useless.sh echo "This Is Error" 1>&2 echo "This Is Output" 我有另一个shell脚本: alsoUseless.sh ./useless.sh | sed 's/Output/Useless/' 我想捕获“这是错误”,或从useless.sh中的任何其他标准错误,变成一个variables。 我们称之为错误。 请注意,我正在使用stdout的东西。 我想继续使用stdout,因此在这种情况下,将stderrredirect到stdout是没有用的。 所以,基本上,我想要做的 ./useless.sh 2> $ERROR | … 但是这显然不起作用。 我也知道我能做到 ./useless.sh 2> /tmp/Error ERROR=`cat /tmp/Error` 但这是丑陋的和不必要的。 不幸的是,如果没有答案出现在这里,我将不得不做的。 我希望有另一种方式。 任何人有更好的想法?
如何在PowerShell中使用这样的命令并将其分成多行: &"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:contentPath="c:\workspace\xxx\master\Build\_PublishedWebsites\xxx.Web" -dest:contentPath="c:\websites\xxx\wwwroot\,computerName=192.168.1.1,username=administrator,password=xxx"
我正在查找完整的ADB shell dumpsys命令列表,其中包含所有命令的完整说明。 我在哪里可以find这些信息?
如果不是,是否有事实上的标准? 基本上我正在写一个像这样的命令行帮助文本: usage: app_name [options] required_input required_input2 options: -a, –argument Does something -b required Does something with "required" -c, –command required Something else -d [optlistitem1 optlistitem 2 … ] Something with list 我从基本上只是阅读各种工具的帮助文本,但有没有一个指导方针或什么的列表? 例如,我使用方括号还是括号? 如何使用间距? 如果参数是一个列表呢? 谢谢!
我需要有条件地执行一些make规则,只要安装的Python大于某个版本(比如说2.5)。 我以为我可以做一些像执行: python -c 'import sys; print int(sys.version_info >= (2,5))' 然后使用输出(如果可以,则为'1',否则为'0')在ifeq make语句中。 在一个简单的bash shell脚本中,它只是: MY_VAR=`python -c 'import sys; print int(sys.version_info >= (2,5))'` 但是这在Makefile中不起作用。 有什么build议么? 我可以使用任何其他明智的解决方法来实现这一点。
当zsh在Mac OS X上被设置为loginshell时,当它由iTerm启动时,zsh并不认为它是作为loginshell运行的,虽然它是以'-zsh'(' – '作为arg [0]的第一个字符),它应该表示它应该作为loginshell启动。 所以,当我将loginshell设置为bash时,bash首先在$ 0中识别出这个“ – ”,并作为loginshell运行,但是zsh并没有这样做,尽pipe看起来应该如此。 有没有办法让zsh识别arg [0]中的' – ',或者让iTerm使用–login命令行参数运行shell?
我期待通过目录recursion查找文件不是由一个特定的用户拥有,我不知道如何写这个。