我正在编写一个Linux shell 脚本figlet
,该脚本仅在安装了正确的工具(例如:在系统路径上可访问)时才会在其执行期间打印状态横幅。
例子:
#!/usr/bin/env bash
echo "foo"
figlet "Starting"
echo "moo"
figlet "Working"
echo "foo moo"
figlet "Finished"
我希望我的脚本即使在未安装figlet
时也能正常工作。
什么是实用的方法?
我录制了
ffmpeg -f alsa -ac 2 -i plughw:0,0 /tmp/audio.mp4
然后我移动/tmp/audio.mp4
到另一个目录 ( /root/audio.mp4
) 并没有停止ffmpeg
导致.mp4
文件损坏:
ffplay /root/audio.mp4
[...]
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f3524000b80] moov atom not found
audio.mp4: Invalid data found when processing input
如何恢复和读取我的.mp4
文件?
是否可以使用dnf
(或其他实用程序)搜索不同版本 Fedora 的存储库?
例如,在我当前的版本中搜索我可以做的所有版本的包dnf --showduplicates list <package name>
。是否可以按照以下方式做一些事情:
dnf --showduplicates list [--fedora29] <package name>
哪里[--fedora29]
可以使用参数来指定我想搜索的 Fedora 版本?
如果这是不可能的dnf
,我可以使用其他命令行工具吗?
我正在使用qemu-system-x86_64
. 我知道通过 USB 设备的两种方法。
例如,我有一只鼠标出现在 lsusb 中,例如
Bus 003 Device 011: ID 6ade:9582 Amazing Mouse Maker
我可以通过使用
-device usb-host,vendorid=0x6ade,productid=0x9582
或者
-device usb-host,hostbus=3,hostaddr=11
这两个我都不是很喜欢。如果我通过供应商/产品 ID 获取它,那么在关闭 VM 之前,我将永远无法收回该鼠标。
如果我通过 BUS 和设备号获取它,那么如果我拔掉它,我将不得不告诉 Qemu 重新获取它。
我可以通过端口(实际的物理插槽)发送它吗?假设它已插入总线 3 端口 2。我可以通过它吗?
我有一个以 .gz 格式压缩的巨大日志文件,我只想读取它的第一行而不解压缩它来检查文件中最旧日志的日期。
日志的形式为:
YYYY-MM-DD Log content asnsenfvwen eaifnesinrng
YYYY-MM-DD Log content asnsenfvwen eaifnesinrng
YYYY-MM-DD Log content asnsenfvwen eaifnesinrng
我只想读取第一行中的日期,对于未压缩的文件我会这样做:
read logdate otherstuff < logfile.gz
echo $logdate
使用 zcat 花费的时间太长。
我已经研究了这个问题的真相,发现了两页关于这个问题的页面,但没有澄清它。
在可选软件选择阶段的 debian-installer 中,您有以下选项:
Debian desktop environment (already ticked by default)
... GNOME (not ticked)
... xfce (not ticked)
... KDE (not ticked)
... Cinnamon (not ticked)
... MATE (not ticked)
... LXDE (not ticked)
Debian 桌面环境实际安装了什么?它是否安装了 GUI(我的理解是 Gnome 是默认设置)还是只安装了一些对桌面用户有用但不包含 GUI 的程序?您是否必须勾选 Gnome 才能获得 GUI?如果没有,除了 Debian 桌面环境之外,勾选 Gnome 选项的目的是什么?
Debian Wiki 中有关桌面环境的页面并未阐明该问题。
Debian 用户论坛上的这个帖子关注这个问题,但有很多相互矛盾的答案。
是时候解决这个困扰我多年的难题了……
我不时遇到这个,并认为这是要走的路:
$(comm "$(arg)")
并认为我的观点得到了经验的强烈支持。但我不再那么确定了。Shellcheck也拿不定主意。两者都是:
"$(dirname $0)"/stop.bash
^-- SC2086: Double quote to prevent globbing and word splitting.
和:
$(dirname "$0")/stop.bash
^-- SC2046: Quote this to prevent word splitting.
背后的逻辑是什么?
(顺便说一句,这是 Shellcheck 版本 0.4.4。)
该: http: //lynx.isc.org/未加载。
它是https://lynx.invisible-island.net/什么是“lynx”的官方,基于文本的网络浏览器?