什么是bash中的C?

时间:2014-02-06 08:57:16

标签: bash

我在某处阅读了一个脚本:

a_var=C ls

我试了一下。这将执行ls(我看到当前目录的内容)并将a_var留空。什么是bash中的=C?这是我第一次看到它。

2 个答案:

答案 0 :(得分:4)

这将在环境a_var中运行环境变量"C"设置为ls。很可能这用于实际设置排序ls用于影响排序(LANG=C lsLC_COLLATE=C ls)。

使用C作为ls的排序规则将对文件区分大小写,这意味着以a-z开头的文件位于A-Z之后。其他排序规则可能有其他规则,例如忽略点或将元音变形作为元音处理 - C没有这样的事情。

答案 1 :(得分:1)

var_a=C ls是一个bash命令。

任何Bash命令都可以为执行环境的命令设置本地环境变量,这些环境变量(在您的情况下为var_a)在执行后将不存在。例如,在运行make以指定不同于默认编译器的选项时,或者在curl中,通常会使用这种方式:

$ CC=~/bin/my_own_cc make
$ http_proxy=http://proxy_server:8080 curl http://www.google.com

如果这样运行,make将使用~/bin/my_own_cc而不是默认的C编译器,而curl会在检索http://google.com时知道使用代理。

这些命令不会使用其他不必要的变量污染执行环境。

那就是说,在你的例子中,这没有任何副作用。