如何在 Linux shell 中打印“@”?

rea*_*ebo 6 bash

我的远程服务器在控制台中的键盘布局与我的物理键盘不同时遇到了问题。

我需要复制@一封信才能粘贴到浏览器论坛中。

服务器位于没有外部访问权限的 VPN 中,因此简单的“at 符号”搜索不起作用。

是否有一些技巧可以@在控制台中打印出来以便我可以复制和粘贴它?是否有一个众所周知的文件可以简单地做一个cat并在@里面显示一个?一个自述文件或类似的。

A.B*_*A.B 39

使用 bash 外壳:

echo $'\x40'
Run Code Online (Sandbox Code Playgroud)

使用 POSIX 外壳:

printf '\100'
Run Code Online (Sandbox Code Playgroud)


L. *_*son 32

您可以使用man ascii显示来自该输出的 ASCII 字符集和剪切粘贴。

(如果您安装了asciiPlan 9 中的程序或其他东西,您可以明确指定您想要第 7 节中的手册页:man 7 ascii,但这通常不是必需的。)


小智 5

如果安装了sed和的 GNU 变体cut,您可以@从显示的错误报告地址中提取字符sed --version

sed --version |grep bug-sed|cut -d : -f2|cut -d d -f2|cut -d g -f1
Run Code Online (Sandbox Code Playgroud)

  • 如果您只需要复制和粘贴的东西,那么单独使用 `sed --version` 肯定就足够了 (6认同)
  • 使用`sed`代替`grep|cut|cut|cut`:`sed --version | sed -n '/.*bug-sed\(.\)gnu.org.*$/s//\1/p'` (3认同)

ilk*_*chu 5

如果你有 Perl,你可以获得所有可打印的 ASCII 字符,而对特殊字符的需求最少,如下所示(也可以使用双引号):

shell$ perl -l -e 'print map chr, 32..126'
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Run Code Online (Sandbox Code Playgroud)

甚至更简单(只有字母和点):

shell$ perl
print chr for 32..126
^D
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~shell$
Run Code Online (Sandbox Code Playgroud)