标签: script

第一行输出后停止

我尝试在 Bash 脚本中执行以下操作:运行命令(例如tail -f log_file),等待特定输出到达,然后停止命令,并继续执行脚本。

我尝试了以下方法,但没有成功:

tail -f log_file | grep some_text | head -n1
Run Code Online (Sandbox Code Playgroud)

我这样没有输出。

现在,我尝试诊断问题。当我简单地运行tail -n1,然后在终端中输入一些内容时,它会在第一行之后退出。但是,如果我运行以下命令:

grep some_text | head -n1
Run Code Online (Sandbox Code Playgroud)

在这种情况下,在按 CTRL+D 之前我不会得到任何输出,然后它会打印包含 的输入的第一行some_text

我的问题是,这是为什么?如果head在第一种情况下立即输出第一行,为什么当它从管道获取输入时不输出呢?难道它不应该输出前n行的所有内容,然后退出,向管道的另一端发送 SIGPIPE 信号吗?

script bash head

5
推荐指数
1
解决办法
6664
查看次数

在 KDE 中使用 shell 命令保存会话

我可以使用 KDE 开始菜单保存 KDE 会话。但是我怎样才能通过 shell 命令保存我的会话呢?

script kde session shell

5
推荐指数
1
解决办法
5860
查看次数

有没有办法以编程方式编写 Windows 10 的“滤色器”功能脚本?

我正在尝试让 Windows 10 模拟 Google 与 Android 9 一起发布的新“数字健康”功能。基本上它会在夜间将屏幕更改为灰度,以尝试并激励人们放下手机并前往睡觉。

当我了解到 Windows 10 的“滤色器”功能(它还允许您将颜色配置文件设置为灰度)时,我认为编写脚本可能很容易,但我似乎无法找到一种方法来做到这一点直接写脚本。

此刻,我基本上是通过打开工作Win+ Ctrl+C切换热键,并有计划任务设置为运行脚本的AutoHotkey基本上伤害到那些键触发快捷方式。这工作正常,但我希望能够禁用快捷键,这样我就不会不小心碰到它,或者有一种简单的方法来禁用该功能(并削弱“数字健康”效果)。此外,脚本无法知道设置的状态。如果它运行两次,它会自行撤消。目前,我没有为机器编写脚本来取消设置该功能,但是如果我创建了一个任务来执行此操作,并且在每晚触发之前关闭机器,则它可能会在早上变灰。

我的问题是询问是否有任何方法可以直接(通过 PowerShell、Batch、VBS 等)显式设置“颜色过滤器打开”或“颜色过滤器关闭”,而不依赖于快捷键,最好不要切换?

script automation colors color-profiles windows-10

5
推荐指数
1
解决办法
1725
查看次数

如何通过命令行编辑本地组策略对象?

有没有办法通过命令行更改或编辑某些组策略?

我们目前正在安装许多基于映像的 PC。安装完成后,需要更改某些组策略,此时我们必须手动执行此操作。

我想在脚本中添加这些更改,以便我可以为每个部门创建一个脚本来强制执行这些组策略。

例如:通过脚本将“计算机配置/管理模板/配置面板/在线工具提示”设置为“禁用”。

谢谢!

script command-line

5
推荐指数
1
解决办法
6万
查看次数

如何在 npm 脚本中传递节点参数,例如“--trace-deprecation”

我有点羞愧,我自己找不到一个好的解决方案,但可惜。

使用 npm,我们通常有一个带有段package.json的文件scripts,用于存储我们希望工具链定期执行的任务,例如:

"scripts": {
    "build": "webpack --env production",
    "start": "webpack-dev-server"
}
Run Code Online (Sandbox Code Playgroud)

现在我们可能已经更新了工具链的一部分 - 在这个示例中是 webpack - 突然我们收到一条如下消息:

(node:10868) [DEP_WEBPACK_DEPRECATION_ARRAY_TO_SET] DeprecationWarning: Compilation.modules was changed from Array to Set (using Array method 'reduce' is deprecated)
(Use `node --trace-deprecation ...` to show where the warning was created)
Run Code Online (Sandbox Code Playgroud)

按原样,它对于诊断和解决问题完全没有用。某些构建脚本中的某些地方是错误的。... 耶!

至少在 webpack 及其插件的情况下,我们可以获得在 CLI 上调用的非常有用的跟踪输出:

node --trace-deprecation node_modules/webpack/bin/webpack.js --env production
Run Code Online (Sandbox Code Playgroud)

相当麻烦的一行,不是吗?我们确实想避免这种情况的原因有很多。排名不分先后:

  • 特别是弃用是彩色编码消息海洋中的一条无色线 - 很容易被错过
  • 在注意到弃用后,我们必须再次构建该项目
  • 在脚本中,我们只需使用所需构建工具的名称,这里我们必须提供完整的相对路径
  • 我们必须将所需的参数从package.jsonCLI 复制到(例如,不同的环境激活不同的插件 - 这不是一般用例,因此很容易被忽视,即使程序员已经有了处理弃用的想法)
    • 由于添加了内容,.js我们也不能复制整个脚本主体
  • 纯粹的、纯粹的懒惰

所以...

  • 有没有办法激活 …

script node.js npm

5
推荐指数
1
解决办法
5248
查看次数

在 Windows 机器上运行脚本的物理按钮

我经常接触到那些绝对不会操作 PC 的人,无论他们接受了多少培训。

我需要某种可编程的物理按钮或遥控器,当按下时在 Windows 机器上执行脚本。(不,聪明人,老鼠不行。)

这样的事情存在吗?如果是这样,我该如何设置?

script gui

4
推荐指数
1
解决办法
2145
查看次数

以自动方式从命令行发送邮件

我希望能够通过我的 ISP 的 SMTP 服务器(端口 25)将文本文件发送到 Internet 上的电子邮件地址,例如我的 Office 电子邮件地址或我的 GMail 地址。我的 DSL 连接上有一个基本的 Ubuntu 9.04 服务器设置。

我如何使用 Postfix 在 bash 脚本上发送 .LOG 文件?鉴于过去从未用于发送电子邮件,要在该服务器上安装的软件包是什么?

谢谢 :-)

email script automation ubuntu

4
推荐指数
1
解决办法
3297
查看次数

如何编写脚本来接受任意数量的命令行参数?(UNIX, BASH)

我有一个脚本,我想接受任意数量的命令行参数。

到目前为止我有

如果 [ -O $1 ] ; 然后
  echo "你是 $1 的所有者"
别的
  echo "你不是 $1 的所有者"
菲

显然,如果我希望脚本只接受一个参数,这将起作用,但是对于任何数量的参数都有效。

前任。./脚本 f f1 f2 f3

unix script bash

4
推荐指数
1
解决办法
1万
查看次数

在 Mac OS X 中设置文件创建日期

我需要一个脚本来将我的录音机创建的一堆文件的创建日期设置为修改日期 - 有什么方法可以做到这一点?运行 Mac OS X 10.4.11

script date touch macos

4
推荐指数
1
解决办法
6148
查看次数

UNIX 查找包含特定文件 (pom.xml) 的目录,然后在该目录中执行命令

我想从根目录中找到包含某个文件名 (pom.xml) 的所有目录,然后 cd 到该目录并执行命令。我可以在脚本中做到这一点,但我希望用单行命令来做到这一点。

到目前为止我有

find . -type f -name 'pom.xml' |sed 's#\(.*\)/.*#\1#'
Run Code Online (Sandbox Code Playgroud)

这给出了我需要的目录......现在我需要进入每个目录并执行我的命令

unix script find

4
推荐指数
1
解决办法
4393
查看次数

标签 统计

script ×10

automation ×2

bash ×2

unix ×2

color-profiles ×1

colors ×1

command-line ×1

date ×1

email ×1

find ×1

gui ×1

head ×1

kde ×1

macos ×1

node.js ×1

npm ×1

session ×1

shell ×1

touch ×1

ubuntu ×1

windows-10 ×1