Articles of bash

添加.env可变参数以运行给定的命令

我有一个.env文件中的variables就像这样: HELLO=world SOMETHING=nothing 有一天我发现了这个很棒的脚本,这些脚本将这些variables放到当前会话中,所以当我运行这样的东西的时候 $(cat ./.env | grep -v ^# | xargs) && node test 然后我可以访问test.js节点文件中的variables。 console.log(process.env.HELLO) console.log(process.env.SOMETHING) 问题在于,该命令将.envvariables放在整个会话中,所以当我运行node test而没有使用$(cat ./.env | grep -v ^# | xargs)后,它仍然可以访问对于这些variables,我正在编写一个node.jstesting来说明这些variables,我希望能够在没有这些.envvariables的情况下运行相同的命令,而不必担心它们是否仍在会话中。 理想情况下,我想跑 put-env-variables-for-this-command-first-command node test && node test 并且只有在testing脚本第一次运行时才能使用envvariables。

使用bash从文本文件中读取字符

有谁知道我可以从一个文件中读取前两个字符,使用bash脚本。 有问题的文件实际上是一个I / O驱动程序,它没有新的行字符,实际上是无限长的。

从命令行复制图像到剪贴板

我正在使用ImageMagick将我的屏幕的一部分复制到一个临时文件(something.png)。 我现在想直接从命令行将这个文件的内容粘贴到剪贴板中。 到目前为止我的脚本是这样的: #!/bin/bash TMPFILE=$(mktemp) FORMAT='.PNG' SCREENSHOT_FILE=${TMPFILE}${FORMAT} mv "$TMPFILE" "$SCREENSHOT_FILE" import "$SCREENSHOT_FILE" cat "$SCREENSHOT_FILE" | parcellite rm "$SCREENSHOT_FILE" Parcellite完美的命令行复制和粘贴,但我不能让它与图像工作。 我认为这不是parcellite的一个特点。 我怎么能这样做呢?

查找1小时前修改的文件,但不到3天

在Linux中,使用bash,find一个多小时前修改但不到3天的文件的最简单方法是什么? 当然,要做到这一点很简单。 我继续search,找不到一个简单的解决scheme。

Bash脚本创build符号链接到共享库

我认为这个问题对于你的shell脚本怪物是相当容易的。 我正在寻找最优雅和最简单的方式来创build符号链接到Unix的共享库通过bash shell脚本。 我需要的是从“libmythings.so.1.1,libotherthings.so.5.11”等共享库文件列表开始,获取创build的符号链接,例如: libmythings.so -> libmythings.so.1 -> libmythings.so.1.1 libotherthings.so -> libotherthings.so.5 -> libotherthings.so.5.11 库文件位于包含其他文件(如其他shell脚本)的目录中。 编辑 :好,“ldconfig -nN”。 可以正常工作,但是我还需要链接,没有在“.so”之后附加的库的主要编号,至less有一个库,因为一个或多个库是来自Java的JNI调用的入口点,所以当一个库通过System.loadlibrary(“libraryname”)的方式实例化,它期望一个名为“libraryname.so”的库,而不是“libraryname.so.X”。 只有ldconfig -nN的解决scheme可以工作,如果有Java部分的解决方法。

从后台进程redirectstdout&stderr

我有一个名为foo的脚本运行程序a.exe,并将计时统计信息发送到文件time.log #!/bin/bash date 1>> time.log (time ./a.exe) 2>> time.log 如果我在terminal的后台运行脚本,并保持我的shell打开,直到a.exe完成,但如果我在后台运行脚本并退出我的terminal(a.exe需要很长时间才能运行) foo & exit 当我回来,a.exe已经执行,但时间统计信息不会出现在我的日志文件。 有人知道为什么吗? 是否有一种方法可以在closures父shell之后获取计时统计信息? 谢谢

在大文本文件中查找重复的logging

我在一台Linux机器上(Redhat),我有一个11GB的文本文件。 文本文件中的每行包含单个logging的数据,行的前n个字符包含logging的唯一标识符。 该文件包含超过2700万条logging。 我需要validation文件中没有多个具有相同唯一标识符的logging。 我还需要在一个80GB的文本文件上执行这个过程,所以任何需要将整个文件加载到内存中的解决scheme都是不实际的。

使用来自PHP / CGI不良做法的shell命令?

shell命令是否被认为是合法的编程接口? 特别是,从PHP页面或CGI文件在linux应用程序服务器上执行bash shell命令有什么问题吗? 这是否会引入效率或安全问题? 谢谢

如何在bash脚本中存储“time”函数输出的子string

所以bash的内置时间函数应该以这种格式输出 real 0m0.002s user 0m0.001s sys 0m0.000s 我想要以毫秒为单位保存用户的时间,如001这是干净的方式吗?

Linux:在文件保存时触发Shell命令

我想在文件被修改时自动触发一个shell命令。 我认为这可以通过注册一个inotify钩子和调用system在代码中完成,但有没有一个更高级别的bash命令可以完成这个?