在 Unicode 中,某些字符组合具有不止一种表示形式。
例如,字符ä可以表示为
c3 a4
UTF-8 编码中的两个字节),或作为61 cc 88
UTF-8 中的三个字节)。根据 Unicode 标准,这两种表示形式是等效的,但具有不同的“规范化形式”,请参阅UAX #15:Unicode 规范化形式。
unix 工具箱里有各种文本转换工具,想到sed、tr、iconv、 Perl 。如何在命令行上快速轻松地进行 NF 转换?
我知道像grep这样的行为良好的实用程序将“正常”消息输出到 stdout,将错误消息输出到 stderr。
$ grep '^foo' file1 file2
file1:foo
grep: file2: No such file or directory
Run Code Online (Sandbox Code Playgroud)
当我自己编写 shell 脚本时,我经常发现很难决定我应该在 stderr 上显示什么输出和哪些消息,或者我是否应该打扰。
我想知道一些好的做法:什么时候将一些消息重定向到标准错误是合理的,什么时候不需要?
“这取决于”,当然,但是您是否有一些见解可以帮助我做出这些决定?
为了使这个主观问题符合格式,我想鼓励回答“为什么”,并以经验为基础,并在可能的情况下以事实为依据。
在 Debian 系统上使用update-alternatives (8) 可以将手册页添加为某个主替代方案下的从属手册页。
例如,以下命令安装替代手册页tclsh.1
以及tclsh
.
$ update-alternatives --install /usr/bin/tclsh tclsh /usr/bin/tclsh8.6.0 100 \
--slave /usr/share/man/man1/tclsh.1 tclsh.1 /usr/share/man/man1/tclsh8.6.0.1
Run Code Online (Sandbox Code Playgroud)
但是,如果我没有一个而是整个目录,其中包含我想要安装的手册页作为替代方案,该怎么办?如何在不添加数百个奴隶的情况下添加这些?
我正在使用 Ubuntu 12.04,并尝试安装我自己的Tcl 8.6(无 ActiveState)。它有 800 多个手册页/opt/tcl8.6.0/man/man[13n]
。
alternatives ×1
bash ×1
command-line ×1
conversion ×1
debian ×1
man ×1
scripting ×1
shell-script ×1
stderr ×1
ubuntu ×1
unicode ×1