小编Dav*_*fer的帖子

无法在 bash 的“mapfile”中进行管道传输……但为什么呢?

我只想将某个目录中的所有文件放入一个 bash 数组中(假设所有文件的名称中都没有换行符):

所以:

myarr=()
find . -maxdepth 1  -name "mysqldump*" | mapfile -t myarr; echo "${myarr[@]}"
Run Code Online (Sandbox Code Playgroud)

结果为空!

如果我使用临时文件或其他文件的迂回方式:

myarr=()
find . -maxdepth 1  -name "mysqldump*" > X
mapfile -t myarray < X
echo "${myarray[@]}"
Run Code Online (Sandbox Code Playgroud)

结果!

但是为什么不能mapfile从管道中正确读取?

bash

16
推荐指数
3
解决办法
3664
查看次数

Fritz!Box 7490:如何上传修改后的配置文件

我有一个AVM的Fritz!Box 7490住宅 DSL/调制解调器/路由器。

可以将路由器的当前配置转储为文件(在“系统 > 备份 > 保存选项卡”下)。结果是一个简单的结构化文本文件,不是 JSON,但几乎如此(出色的设计决策,AVM!)

我想非常规地修改它并再次上传它以更改路由器的配置。

我想修改什么?首先,清空现在非常大的 DHCP 缓存 - 通过界面执行此操作需要很长时间(点击数小时)。其次,修改传递给 LAN 上 DHCP 客户端的 DNS 服务器、选项 servercfg.user_dns1_for_ipv4servercfg.user_dns2_for_ipv4,它们无法通过 7490 接口访问。

然而,路由器的配置上传工具(“系统 > 备份 > 恢复选项卡”)会验证文件的完整性。显然,它根据内容计算校验和,并根据要上传的文件中嵌入的校验和验证这些校验和。这是最后一行:

**** END OF EXPORT 0428BE3C ****
Run Code Online (Sandbox Code Playgroud)

如果不匹配,上传将被拒绝,并显示“指定的文件不是有效的导入文件”。(如果匹配,则无需多说即可应用上传并重新启动路由器。哎哟!)

在型号 7390 中,可以通过在最顶部NoChecks=yes的介绍字符串之前添加来禁用完整性检查**** CFGFILE:ar7.cfg(参见例如更改 Fritzbox 上的 DNS)这显然不再适用于 7490(太多人破坏他们的设备?)

是否有另一种解决方法可以使这个现代版本的POKE工作?

router

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

标签 统计

bash ×1

router ×1