在 bash 中, 是什么意思?例如, 中的 是什么意思accurev update -9 2>,update 1>&2
?(accurev
是一个版本控制软件)
抱歉,这个问题问得有点蹩脚,我只是不知道如何通过谷歌搜索特殊字符。
答案1
它没有特殊含义。该命令重定向到名为 的文件,update
。
答案2
括号扩展中可以使用逗号,但您展示的示例中没有括号。
此命令会将其输出存储在两个文件中,一个名为“def”,另一个名为“abcdef”:
echo hello | tee {,abc}def
或者“file1”和“file2”中的这个:
echo hello | tee file{1,2}
逗号可用于分隔let
语句或等效(())
构造中的算术运算中的命令:
let a=1,b=2 # no spaces permitted
(( a = 1 , b = 2 ))
(( ++c, --d, e+=4 ))
您可以在语句中使用逗号for
来处理除主索引之外的其他变量,而不是将变量操作放在主体中for
。这样做可能是一种不好的编程习惯:
for ((i=1,j=4; i<4,j<7; i++,j+=2)); do echo $i $j; done
在 Bash 4 中也可以使用逗号将字符串更改为小写(仅显示几种变化):
$ words="This is a TEST"
$ echo ${words,,} # the whole string is lowercased
this is a test
$ echo ${words,} # only the first character
this is a TEST
答案3
总体而言,丹尼斯是对的,但您的具体示例运行accurev update -9
,并将 stderr 输出放入名为,update
(以,
作为文件名的一部分)的文件中,然后将 stdout 放入 stderr 所在的同一位置(在本例中命名的文件,update
)。
答案4
bash 中有一个逗号运算符,它可以运行两个命令,但我不认为你的示例中使用了它,请查看高级 bash 脚本指南http://tldp.org/LDP/abs/html/ops.html
一个例子:
for ((a=1, b=1; a <= LIMIT ; a++, b++))
do # The comma chains together operations.
echo -n "$a-$b "
done