当我在我的 hunspell-dic 文件 /usr/share/hunspell/de_DE_frami.dic 中搜索时phan
,我得到的单词列表包括
cellophan/Sozm
cellophan/hke
cellophan/ozm
glaukophan/EPSozm
我在哪里可以找到文档,后缀是什么意思?我寻找了 hunspell 的联机帮助页,但只找到了一个对 update-dictcommon-hunspell 没有帮助的联机帮助页。man dict?
也没有帮助。
当我在我的 hunspell-dic 文件 /usr/share/hunspell/de_DE_frami.dic 中搜索时phan
,我得到的单词列表包括
cellophan/Sozm
cellophan/hke
cellophan/ozm
glaukophan/EPSozm
我在哪里可以找到文档,后缀是什么意思?我寻找了 hunspell 的联机帮助页,但只找到了一个对 update-dictcommon-hunspell 没有帮助的联机帮助页。man dict?
也没有帮助。
我喜欢将 bash 中的每个历史记录保存到一种日志文件中,并为此创建了一个额外的目录 ~/lib/hists/。
在 shell 中编写这样的日志文件很容易:
history -w /home/stefan/lib/hists/bash-hist-$(date +%F_%T_%N)
现在,如果我关闭,所有关闭的 xterm 都将写入它们的日志文件,这就是为什么我在文件名中包含 nanotime 以避免冲突。
所以我将该命令放入~/.bash_logout
不幸的是,关闭 xterm 并没有生成这样的日志文件。我想,也许是因为我关上了窗户。所以在 bash 中启动 bash:
bash
ls
exit
但同样,没有记录历史。
大多数时候我有 4 到 6 个打开的终端,但只有一个我不知道的历史文件,哪些命令在那里结束 - 从第一个打开的 shell,从最后一个关闭的 shell?在工作时,历史不会干扰,所以我猜它只绑定到一个 shell 实例。
我对解释很感兴趣,为什么我的方法失败了,我该如何解决它,包括非常不同的方法。
我在理解 bash 中与 =~ 匹配的字符串模式时遇到问题。
我编写了以下函数(不要惊慌——它只是在试验,而不是 md5sum 的安全方法):
md5 () {
[[ "$(md5sum $1)" =~ $2* ]] && echo fine || echo baarr;
}
并用一些输入对其进行了测试。这里有一些参考:
md5sum wp.laenderliste
b1eb0d822e8d841249e3d68eeb3068d3 wp.laenderliste
如果控制和的源不包含文件名的两个空格,那么比较就变得不必要了。这就是观察的来源,但比解决该问题的许多方法更有趣的是我的观察:
我定义了一个控制变量,并用太短但匹配的字符串测试我的函数:
ok=b1eb0d822e8d841249e3d68eeb3068d3
for i in {29..32}; do md5 wp.laenderliste ${ok:1:$i} ;done
fine
fine
fine
fine
这是可以预料的,也很好,因为它是函数的目的,忽略丢失的“wp.laenderliste”的不匹配,因此甚至更长的不匹配。
现在,如果我附加不匹配的随机内容,我当然希望出现错误并获取它们:
for i in {29..32}; do md5 wp.laenderliste ${ok:1:$i}GU ;done
baarr
baarr
baarr
baarr
正如预期的那样。但是当只有一个,最后一个不匹配的字符时,看看会发生什么:
for i in {29..32}; do md5 wp.laenderliste ${ok:1:$i}G ;done
fine
fine
fine
fine
是我,没有意识到这应该如何工作(选择被破坏),还是在 bash 的模式匹配中真的存在一个错误?
字符串中间的不匹配从计数 1 开始:
for i in 5 9 e ; do echo md5 wp.laenderliste ${ok//$i/_} ;done
md5 wp.laenderliste b1eb0d822e8d841249e3d68eeb3068d3
md5 wp.laenderliste b1eb0d822e8d84124_e3d68eeb3068d3
md5 wp.laenderliste b1_b0d822_8d841249_3d68__b3068d3
for i in 5 9 e ; do md5 wp.laenderliste ${ok//$i/_} ;done
fine
baarr
baarr
bash 版本:
bash -version
GNU bash, Version 4.3.48(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
Lizenz GPLv3+: GNU GPL Version 3 oder jünger <http://gnu.org/licenses/gpl.html>
免责声明:md5sum 仅对无意错误有用,对攻击无效。我不鼓励使用它。
这个问题不是寻找更好的解决方案或变通方法。它是关于=~运算符的,它是否应该这样做,如果是,为什么。