如何在zsh中回显裸hypen(`-`)?

问题描述 投票:0回答:1

我正在寻找一种解决zsh echo的方法,该方法显然将只是一个连字符的字符串当作一个空字符串处理

echo -
# no output

echo "-"
# no output

echo '-'
# no output

[具体地说,我将一个字符串拆分成一个已知字符,然后使用这两个片段,而两个片段中的任何一个都可能是-。喜欢

% my_f() {
  my_arr=(${(s.b.)1})
  echo $my_arr[1]
  echo $my_arr[2]
}

% my_f "abc"
a
b

% my_f "-bc"
# I need to know -
b

% my_f "ab-"
a
# I need to know -

%

在我正在处理的特定事情上,我可以重新做事,以使潜在的-不会被自己回显

my_arr=(${(qqqs.b.)1})
echo " ${(Q)my_arr[1]} "
echo " ${(Q)my_arr[2]} "

但是感觉很幸运,并且需要在此脚本周围撒很多qqqQ。有没有更好的方法?

echo zsh
1个回答
0
投票

尝试echo - "-"。第一个破折号终止选项处理,因此将打印以下文本。

请参见此出色的答案以获取更多上下文:https://stackoverflow.com/a/57656708/11776945

© www.soinside.com 2019 - 2024. All rights reserved.