我正在运行此循环以每秒检查和打印一些内容。然而,因为计算可能需要几百毫秒,所以打印时间有时会跳过一秒。
有没有办法编写这样一个循环,保证我每秒都能得到打印输出?(当然,前提是循环中的计算需要不到一秒钟:))
while true; do
TIME=$(date +%H:%M:%S)
# some calculations which take a few hundred milliseconds
FOO=...
BAR=...
printf '%s %s %s\n' $TIME $FOO $BAR
sleep 1
done
Run Code Online (Sandbox Code Playgroud) 我想递归删除文件夹中一段时间内未访问的a所有文件,子文件夹中的所有文件除外b。
find a \( -name b -prune \) -o -type f -delete
Run Code Online (Sandbox Code Playgroud)
但是,我收到一条错误消息:
find: -delete 操作会自动打开 -depth,但 -prune 在 -depth 生效时什么也不做。如果您想继续,只需明确使用 -depth 选项。
添加-depth会导致b包含所有文件,这绝不能发生。
任何人都知道一种安全的方法来使这项工作?
我想排除的符号链接rsync,但--no-links洪水我的终端使用skipping non-regular file的每一个环节,以重点从其他重要信息rsync。
如何排除链接而不会被每个单独的事件纠缠?以下是不可接受的解决方案:
-q选项,因为这屏蔽所有来自输出rsyncgrep如果这是不可能的(看起来似乎如此):为什么跳过非常规文件如此重要,以至于即使用户已指定要排除它们,也会明确警告用户其中的每一个?我很想把这当作开发人员的问题。
我想这样做,只有某些发件人:地址可以发送到运行 Postfix 的 Ubuntu 系统上的电子邮件地址(邮件列表)。
理解手册中的 Postfix 需要很多知识,所以我希望得到一个我可以使用的完整配方。目前这是我所拥有的:
/etc/postfix/main.cf:
smtpd_recipient_restrictions =
check_recipient_access hash:/etc/postfix/protected_destinations
smtpd_restriction_classes = insiders_only
insiders_only = check_sender_access hash:/etc/postfix/insiders, reject
/etc/postfix/protected_destinations:
protected.list@example.com insiders_only
/etc/postfix/insiders:
allowed.user@example.com OK
another.allowed.user@example.com OK
Run Code Online (Sandbox Code Playgroud)
这给出:
fatal: parameter "smtpd_recipient_restrictions": specify at least one working instance of: check_relay_domains, reject_unauth_destination, reject, defer or defer_if_permit
Run Code Online (Sandbox Code Playgroud)
我愿意接受任何建议。它不必是 Postfix。它可以是 procmail 或任何其他标准解决方案。
注意:收件人是一个邮件列表,因此在系统帐户上没有用户帐户。因此,任何解决方案都必须在没有帐户的情况下工作。
/etc/postfix/virtual:
protected.list@example.com user1@example.com, user2.example.com, ...
Run Code Online (Sandbox Code Playgroud) 我需要从磁盘卷生成文件列表。一些目录(根目录下的所有隐藏目录)具有奇怪的权限,导致 find 抱怨。
我尝试排除所有这些路径,但一个目录仍然抱怨:
find . -type f -not -path './.*/*'
find: ./.DocumentRevisions-V100: Permission denied
Run Code Online (Sandbox Code Playgroud)
权限是这样的(由操作系统设置,所以我认为它们不应该被弄乱)。
d--x--x--x root wheel .DocumentRevisions-V100
Run Code Online (Sandbox Code Playgroud)
如何更改find语句以有效地省略所有隐藏目录,以免抱怨。(我不想这样做,2>/dev/null因为我想了解其他问题)。
我想查看 Privoxy 阻止了哪些 URL 的日志,但我在任何地方都找不到。
我的配置文件(/usr/local/var/log/privoxy/logfile)中的相关行如下:
confdir /usr/local/etc/privoxy
logdir /usr/local/var/log/privoxy
logfile logfile
Run Code Online (Sandbox Code Playgroud)
日志文件/usr/local/var/log/privoxy/logfile为空。
被阻止的 URL 是否记录在另一个文件中?或者如何打开被阻止 URL 的日志记录?
如何perl从 shell 正确替换 UTF-8 字符?
这些示例使用标准输入,但我也需要一些适用的东西perl ... file。
这是我的期望:
$ echo ABCæøåDEF | perl -CS -pe "s/([æøå])/[\\1]/g"
ABC[æ][ø][å]DEF
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
$ echo ABCæøåDEF | perl -CS -pe "s/([æøå])/[\\1]/g"
ABCæøåDEF
Run Code Online (Sandbox Code Playgroud)
用 ASCII 替换 Unicode 字符可以立即生效:
$ echo ABC123DEF | perl -CS -pe "s/([123])/[\\1]/g"
ABC[1][2][3]DEF
Run Code Online (Sandbox Code Playgroud)
我的环境:
perl 5.18.2
Bash 3.2.57
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud) youtube-dl -o - <webpage> | vlc -在 VLC 中显示视频。但是,视频是通过管道传输的(通过类似fd://0),这抑制了向前/向后跳跃的可能性。
但是,youtube-dl -j <webpage>列出了包含多个“url”属性的 JSON 数据。如果你这样做了vlc <url>,VLC 现在会显示视频长度,让我们跳转等等,就像我们在播放本地视频一样。
问题:现在,完全可以编写一个提取 URL 的小型 Python 脚本,但是有没有一种简单的方法可以仅使用简单的 Bash(最好是单行)来执行此操作?
注意:youtube-dl -j列出了一系列不同质量的视频流,最好选择质量最高的视频。
当运行以下命令行将多个 .mkv 文件转换为 .mp4 文件时,事情会出错。就好像脚本试图一次运行所有命令,或者它们以某种方式相互纠缠在一起,并且输出变得混乱。我不知道确切。当我刚刚运行这个时,只有第一个文件被转换。其他时候,我似乎得到了意外或随机的结果。
ls -1 *.mkv | while read f; do ffmpeg -i "$f" -codec copy "${f%.*}.mp4"; done
Run Code Online (Sandbox Code Playgroud)
但是,如果我执行以下操作,事情会按预期进行:
ls -1 *.mkv | while read f; do echo ffmpeg -i \"$f\" -codec copy \"${f%.*}.mp4\"; done > script; bash script
Run Code Online (Sandbox Code Playgroud)
但为什么?它是什么ffmpeg?这不会发生在 bash 循环和除ffmpeg. 我想用一种简单的方法来做,而不需要转义引号、管道到脚本文件等。
我需要将输出从ps,这是间隔分开的。
#!/bin/bash
A=$(ps -r -e -o pcpu=,comm= | head -1)
B=${A[0]}
C=${A[1]}
printf '%3s %s\n' $B $(basename $C)
Run Code Online (Sandbox Code Playgroud)
输出应该是:
42 bar
Run Code Online (Sandbox Code Playgroud)
相反,我得到:
usage: basename ...
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用,最重要的是,我如何使它起作用?
bash ×3
find ×2
directory ×1
ffmpeg ×1
json ×1
logs ×1
networking ×1
perl ×1
permissions ×1
postfix ×1
privoxy ×1
procmail ×1
rm ×1
rsync ×1
sleep ×1
timestamps ×1
unicode ×1
vlc ×1
youtube-dl ×1