Tag: 打击

在Bash中执行时间戳比较的最佳方式是什么?

我有一个警告脚本,我试图阻止垃圾邮件发送给我,所以我想提出一个条件,如果警报已经发送了,比如最后一个小时,不发送另一个警报。 现在我有一个cron工作,每分钟检查一次情况,因为当条件满足时我需要很快得到提醒,但是我不需要每隔一段时间都收到邮件,直到问题得到控制。 在bash中比较时间的最佳方法是什么?

什么是$? shell脚本中$ 0 $ 1 $ 2的意思是?

我经常碰到$? $0 $1 $2 etc…. $? $0 $1 $2 etc….在shell脚本中,我知道的是$? 返回最后一个命令的退出状态 echo "this will return 0" echo $? 但其他人做了什么? 他们叫什么,还有更多? 也许就像$ 3 $ 4 $ 5 …

列出一个tar文件或目录的内容只能到一定的级别

我不知道如何列出一个tar文件的内容只有一些水平? 我理解tar tvf mytar.tar将列出所有文件,但有时我只想看到目录下降到一定程度。 同样,对于命令ls ,我如何控制将要显示的子目录的级别? 默认情况下,它只显示直接的子目录,但不能继续。

分叉/多螺纹工艺| 巴什

我想使我的一段代码更有效率。 我正在考虑把它分成多个进程,让它们一次执行50/100次,而不是一次。 例如(伪): for line in file; do foo; foo2; foo3; done 我想这个for循环运行多次。 我知道这可以用分叉来完成。 它看起来像这样吗? while(x <= 50) parent(child pid) { fork child() } child { do foo; foo2; foo3; done return child_pid() } 还是我想这是错误的方式? 谢谢!

如何将.sh文件与Cygwin关联?

我想通过双击Windows中的.sh文件在Cygwin中运行一个长的rsync命令。 它必须从文件的包含目录(例如/ cygdrive / c / scripts /)开始,以便相对path起作用。 任何人得到这个工作? 注意:我刚刚find了chere ,一个pipe理Windows上下文菜单的Cygwin包(Bash Prompt Here)。 它可能有一些线索。

Cygwin的好替代品? – Cygwin不支持本地支持Win32应用程序

更新1/9/2014:TL; DR版本:转到这篇文章的底部,让Cygwin能够调用非Cygwin程序。 在花了一些时间来制作一些大小合适的bash脚本后,新版本的Cygwin已经打破了它们。 这些脚本调用本机Win32应用程序,不与Cygwin链接,Cygwin显然不被Cygwin正式支持。 这对我来说是一个惊喜,因为多年来,我一直认为Cygwin可以用于混合了本机非Cygwin Win32应用程序和使用Cygwin兼容层的POSIX程序的混合环境。 但显然只有POSIX兼容层才真正被支持,如果本机Win32非Cygwin应用程序工作,那么它被认为是一个幸福的巧合。 我遇到了一个不兼容的问题,我在Cygwin中运行了针对.NET Framework编译的程序。 这曾经工作得很好,但几个月前被打破。 具体来说,从.NET程序传输到任何其他Win32程序的标准input的标准输出通常会导致接收Win32程序过早结束文件信号,因为Cygwin最近在几个月前从字节pipe道切换到消息pipe道 – 并且消息pipe道似乎与使用Visual C ++或.NET Framework的任何接收应用程序不兼容。 这是因为.NET向标准输出发出空写,如果使用消息pipe道,则只输出到接收应用程序。 接收应用程序成功读取零字节,所以认为它是文件结束。 项目负责人似乎并不认为这是一个真正的问题,因为他们显然不支持从Cygwin中运行非Cygwin程序(惊喜!)。 引用邮件列表中多个电子邮件的项目负责人Christopher Faylor的话: 你所看到的可能是因为Cygwin被改为使用消息typespipe道几个修订前。 这不会改变。 这个改变被用来解决Cygwin程序的一个问题,这显然是我们的首要任务。 不pipe有多less人使用Visual C ++或.NET,他们真的不是我们的目标受众。 对于那些不想使用UNIX工具但不是我们主要关注点的人来说,这很好。 为那些想要使用非Cygwin的人修复问题并不是我认为最重要的事情。 从pipe.cc:请注意,pipe道的写入侧打开为PIPE_TYPE_MESSAGE。 这似乎更接近模仿Linuxpipe道行为,并且对于pty处理来说肯定是必需的,因为当指定CANON模式时,fhandler_pty_master以块forms写入pipe道,以换行符结尾。 上面的评论显示了一个“和”的关系。 消息typespipe道更加模仿Linux(UNIX)pipe道行为,并且对于ptys来说绝对是必需的。 我同意James的观点,运行时可能是bug,但是我也同意cygwin应该能够处理这些场景。 你们之间的完整协议不会有太大的影响。 Cygwin源代码不会被投票改变。 即使这个问题最终以某种方式最终得到修正 – 谁知道 – 他们可能会在3个月内破坏别的东西,而不会在意修复回归。 他们可能会考虑一个补丁,但是要花点时间才能找出一些可行的方法。 我认为我的时间在其他地方更好,因为很显然,他们非常愿意打破与原生Win32应用程序的兼容性,不想浪费更多时间让Win32应用程序工作。 所以我想Cygwin不应该被认为是一个混合的Win32 / Cygwin环境的稳定平台 – 我的替代品是什么? 我应该从哪里开始,避免完全重写成bash以外的东西? 我不使用更多的基地Cygwin安装+一些基本的Perl脚本。 更新:在发布这个原始问题之后,他们最终在CYGWIN环境variables中做了一个新的pipe_byte标志:查看文档。 如果这个标志被设置,它将解决上面讨论的问题。 在调用非Cygwin Win32程序时,请务必确保设置了pipe_byte标志。 但是,我已经发现与.NET […]

cygwin从bash清除屏幕

我想从bash中的cygwinterminal清除屏幕。 我努力了 cmd /c cls echo -e "^V^L" echo -e "\014" 这些工作都没有 – 他们都提供了“换行”。 按CTRL + L确实可行 – 但我想从Bash脚本中调用它。 有任何想法吗?

在Bash中访问string的最后x个字符

我发现用${string:0:3}可以访问string的前3个字符。 是否有一个相当简单的方法来访问最后三个字符?

在bash中noop 的用例是什么?

我在bash(:)searchnoop,但没能find任何好的信息。 这个操作符的确切目的或用例是什么? 我试图跟随,这对我来说是这样工作的: [mandy@root]$ a=11 [mandy@root]$ b=20 [mandy@root]$ c=30 [mandy@root]$ echo $a; : echo $b ; echo $c 10 30 请让我知道,这个运营商的实时使用案例或任何强制使用它的地方。

用于pipe道heredoc的多行语法; 这是便携式?

我熟悉这个语法: cmd1 << EOF | cmd2 text EOF 但是刚发现bash允许我写: cmd1 << EOF | text EOF cmd2 (heredoc被用作cmd2的input)。 这似乎是一个非常奇怪的语法。 它是否便携?