Почему следующая команда zsh изменяет мои выходные данные? [closed]

Когда я выполняю эту команду

port=3128
echo $port:localhost

, я получаю 3128ocalhost в качестве вывода.

PS : Когда я меняю первый символ 'l', он работает нормально. Я даже не могу погуглить.

0
задан 16 January 2021 в 09:28

3 ответа

Попытка этот отрывок кода, это, хорошо работает для меня:

#!/bin/sh

PORT=3128
echo "$PORT:localhost"

#output: 3128:localhost

0
ответ дан 18 March 2021 в 23:43

В Bash ваш код работает.

Попробуйте указать оболочку, как ...

(в скрипте)

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

(в клемме)

export SHELL=/bin/bash
port=3128
echo $port:localhost
0
ответ дан 18 March 2021 в 23:43

в ZSH, : l является в качестве модификатора , что делает расширение строчных букв. Поскольку порт является номером, вы не получили этот дополнительный подсказку, но если мы поставьте несколько прописных символов, разница видна.

% port=AS10X
% echo $port:localost
as10xocalost

Чтобы сохранить : L литерал в ZSH, избежать его: $ Port \: localost .

1
ответ дан 18 March 2021 в 23:43

Другие вопросы по тегам:

Похожие вопросы: