我正在尝试从参数回显用户输入。 当用户输入任何具有/ *字符的字符串时,它会打印一些默认的bin引导路径。 我不想打印它。
请注意,用户输入是动态的,如下所示。
$ b="/* abc" #User input ; it can be anything like, "bcd /* abc" or without /* too
$ echo $b
/1 /bin /boot /db_dyn /dev /etc /srv /sys /tmp /tools /usr /var /x abc
答案 0 :(得分:4)
在echo
时引用变量是一种好习惯。在这种情况下,它会为您提供所需的输出:
$ b="/* abc"
$ echo "$b"
/* abc
请注意,如果您不引用,则实际回显为:
echo /* abc
因此展开*
并匹配/
中的所有项目,然后打印abc
。
如果您拥有?
字符,则会发生同样的情况,该字符将扩展为包含一个字符的所有项目。