Shell 我想通过将*作为命令行参数传递,将*作为文本进行比较

Shell 我想通过将*作为命令行参数传递,将*作为文本进行比较,shell,Shell,我正在通过plink从windows机器上运行shell脚本。 我想将“*”(作为命令行参数传递)与脚本中的文字进行比较。 有人能给我推荐一种比较的方法吗?。 我已经尝试了所有可能的方法,比如在双引号中包含$1,单引号,[]。它由shell展开,因此您必须将它以引号或转义形式传递给脚本: echo '*' echo "*" echo \* 您的问题是需要引用常量*,而不是与之比较的参数。这不应该是问题,脚本: #! /bin/bash if [[ "$1" == '*' ]] then

我正在通过plink从windows机器上运行shell脚本。 我想将“*”(作为命令行参数传递)与脚本中的文字进行比较。 有人能给我推荐一种比较的方法吗?。
我已经尝试了所有可能的方法,比如在双引号中包含$1,单引号,[]。

它由shell展开,因此您必须将它以引号或转义形式传递给脚本:

echo '*'
echo "*"
echo \*

您的问题是需要引用常量*,而不是与之比较的参数。

这不应该是问题,脚本:

#! /bin/bash

if [[ "$1" == '*' ]]
then
  echo EQ
else
  echo NE
fi
./aaa.bash '*'
执行:

#! /bin/bash

if [[ "$1" == '*' ]]
then
  echo EQ
else
  echo NE
fi
./aaa.bash '*'