小编mir*_*los的帖子

在另一个变量“内部”使用变量引用

我确定它相对简单,我只是不知道该怎么做。

#!/usr/bin/ksh
set `iostat`
myvar=6
Run Code Online (Sandbox Code Playgroud)

我想要类似的东西echo ${$myvar},我想解释为${$myvar}-> ${6}->value

ksh shell-script variable-substitution

35
推荐指数
2
解决办法
12万
查看次数

如何在 GNU/Linux 上根据供应商 ID 禁用 USB 设备?

那个问题中,有人想要所有 USB 设备的黑名单,然后只允许特定设备。

在这个问题中,我们希望接受所有 USB 设备,但阻止驱动程序(例如cdc_acm)采用一种特定的设备类型——例如,不应采用闪存模式下的LEGO® NXT 积木(因为fwflash需要对设备进行原始访问) ,但驱动程序仍应访问 Arduino 板以/dev/ttyACM0在访问 NXT 和 Arduino 硬件的教育环境中进行生产。

linux usb udev devices nxt

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

查找目录树中安装的所有“真实”文件系统

对于给定的顶级目录,如何发现其中安装了哪些 \xe2\x80\x9creal\xe2\x80\x9d 文件系统,以及来自哪些设备(可能包括 UUID 或 LABEL,但必须使用 /dev/something LVM)?

\n

背景是从 debootstrap 之后运行的脚本自动生成 fstab(5);主机操作系统是 GNU/Linux(我认为并非我在子例程中使用的所有内容都是 GNU/kFreeBSD\xe2\x80\x91 或 GNU/Hurd 安全的)。

\n

到目前为止我发现的最接近的东西是,findmnt -l --real但这仍然显示绑定安装,对于我的用例来说,这是\xe2\x80\x99t \xe2\x80\x9creal不够\xe2\x80\x9d,我需要块设备支持的挂载点。(这可能包括环形安装座。)

\n

mount fstab

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

反转匹配行,NUL 分隔

我正在写一些处理文件匹配的东西,我需要一个反转操作。我有一个文件列表(例如 from find . -type f -print0 | sort -z >lst)和一个匹配列表(例如 from grep -z foo lst >matches– 请注意,这只是一个示例;matches可以是任何任意子集(包括空的或完整的)或lst),现在我想反转这个列表.

背景:我正在实现类似于find(1) 之类的东西,除了文件列表(尽管文件在调用时确实存在于文件系统中,但该列表可能已被预先过滤)。如果文件列表可能没有那么大,我可以使用find "${files[@]}" -maxdepth 0 -somecondition -print0,但即使适度使用我正在编写的内容也会超出 Linux 或 BSDargv大小限制。

如果这些行不是 NUL 分隔的,我可以使用comm -23 lst matches >inverted. 如果匹配不是 NUL 分隔的,我可以使用grep -Fvxzf matches lst. 但是,从我在第一段中提到的生成器来看,两者都是。

假设GNU工具安装,所以这种需求无法移植超越例如Debian的,因为我使用find -print0sort -z和朋友已经(虽然有些BSD系统有它,所以如果能在“更轻便”来完成,我不会抱怨) .

我正在尝试在这里进行代码重用;另外,comm -23除了它不支持更改输入行分隔符(尚)之外,它基本上已经是一个完美的工具,而且comm无论如何都是一个被低估且不够知名的工具。如果 Unix/Linux 工具箱没有提供任何合理的东西,我可能会comm -23在 shell 中重新实现一种形式(简化为这个用例),因为脚本已经(出于其他原因)需要一个恰好支持的 shell …

grep find files comm null

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

标签 统计

comm ×1

devices ×1

files ×1

find ×1

fstab ×1

grep ×1

ksh ×1

linux ×1

mount ×1

null ×1

nxt ×1

shell-script ×1

udev ×1

usb ×1

variable-substitution ×1