我正在学习bash扩展。
有三种类型的扩展与$
我在特殊符号$
上进行实验。
$ ls
foo bar zoo
$ echo $*
#return nothing
$ echo $@*
foo bar zoo
@
和$
此外,
$ ls $
ls: $: No such file or directory
$ ls $*
foo bar zoo
$ ls $a #or any character
foo bar zoo
我对$
的可变性感到困惑。
如何解释其上述行为。
答案 0 :(得分:1)
一些例子:
#!/bin/bash
a_function(){
echo "positional parameters must be called in a script or a function"
echo "positional parameters: $@"
echo "positional parameters: $*"
echo "directory's content:" *
}
a_function "one" "two" "three" "pan"
输出:
positional parameters must be called in a script or a function
positional parameters: one two three pan
positional parameters: one two three pan
content of directory: <your current directory>
PS:
ls $a
ls变量a(空),如此简单的ls ls $*
ls位置参数(空),这么简单ls echo $@
*显示$ @(空)和目录&#34; ls: $
,单独错误$
更多信息:doc bash