为什么以下 zsh 命令会改变我的输出?

为什么以下 zsh 命令会改变我的输出?

当我执行此命令时

port=3128
echo $port:localhost

我得到了3128ocalhost输出。

附言当我更改第一个“l”字符时,它工作正常。我甚至无法用谷歌搜索它。

答案1

在 Zsh 中,:l作为修饰语,使扩展名变为小写。由于端口是数字,因此您没有得到额外的提示,但如果我们输入一些大写字符,则差异显而易见。

% port=AS10X
% echo $port:localost
as10xocalost

为了保留:lZsh 中的文字,请将其转义:$port\:localost

答案2

尝试一下这段代码,它对我来说效果很好:

#!/bin/sh

PORT=3128
echo "$PORT:localhost"

#输出:3128:localhost

答案3

在 bash 中您的代码可以运行。

尝试指定 SHELL 如下...

(在脚本中)

#!/bin/bash
port=3128
echo $port:localhost

(在终端中)

export SHELL=/bin/bash
port=3128
echo $port:localhost

相关内容