小编var*_*der的帖子

如何在读取中扩展变量?

在使用 Bash 5.0.17(1) 的远程 CentOS 中,我是唯一通过 SSH 执行的用户read web_application_root

$HOME/www
Run Code Online (Sandbox Code Playgroud)

或与:

${HOME}/www
Run Code Online (Sandbox Code Playgroud)

或与:

"${HOME}"/www
Run Code Online (Sandbox Code Playgroud)

或与:

"${HOME}/www"
Run Code Online (Sandbox Code Playgroud)

旨在获得具有扩展(环境)变量的输出,例如MY_USER_HOME_DIRECTORY/www.

虽然ls -la $HOME/www工作正常,但ls -la $web_application_root所有示例都失败了;一个错误示例是:

ls: cannot access '$HOME/www': No such file or directory
Run Code Online (Sandbox Code Playgroud)

我知道read将上述所有$HOME变体视为字符串(由于错误中的单引号),因此不会扩展它。

如何在读取中扩展变量?

bash read

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

字节和字符(至少 *nixwise)有什么区别?

我了解任何字符都由一个或多个字节组成。

如果我没记错的话,至少在 *nix 操作系统中,一个字符通常(或完全?)仅由一个字节组成。

字节和字符(至少 *nixwise)有什么区别?

character-encoding special-characters terminology escape-characters byte

4
推荐指数
2
解决办法
864
查看次数

read -r 是否仅用于罕见的特殊读取用例?

根据本手册 -rread

不允许反斜杠转义任何字符

我理解,通常情况下,readshell 内置函数会获取输入并创建一个变量,该变量将该输入保存为一个字符串,其中反斜杠只是文字组件,无论如何都不会转义任何内容。

难道read -r只有在罕见的例外usecases使用read(与输出是的共同点东西比其他的字符串)?

read

2
推荐指数
1
解决办法
65
查看次数