如果我在目录中有以下内容:
empty_dir: 空目录。empty_file: 空的文件。one_char: 由一个字符组成的文件。several_blocks:由几个块组成的文件(但不是“太大”或“稀疏”)。然后,ls将显示以下†:
$ ls -Gghs
total 152K
8,0K drwxr-xr-x 2 4,0K dec 21 23:34 empty_dir
4,0K -rw-r--r-- 1 0 dec 21 23:21 empty_file
8,0K -rw-r--r-- 1 1 dec 21 23:22 one_char
132K -rw-r--r-- 1 127K dec 22 00:14 several_blocks
Run Code Online (Sandbox Code Playgroud)
其次,stat显示以下内容:
$ stat empty_dir/
File: empty_dir/
Size: 4096 Blocks: 16 IO Block: 4096 directory
...
$ stat empty_file
File: empty_file
Size: 0 Blocks: 8 IO Block: …Run Code Online (Sandbox Code Playgroud) 对于GNU Bash变量,以下哪种引用样式是首选,为什么?
VAR="/path/$V1/path with space/$V2" .VAR=/path/"$V1"/"path with space"/"$V2" .VAR="/path/"$V1"/path with space/"$V2""。这里的首选意思是,在尽可能多的情况下按预期工作,而不会不必要地冗长,这样它就可以一致地使用而不会出现任何问题。如果有(罕见?)特殊情况,那么请将其限制为文件系统路径。
假设该path部分可以包含空格或特殊字符。对于2,这当然意味着这些path部分也需要引用。
基本上,这似乎可以归结为另一个问题:单独引用变量替换是否会做一些额外的事情?
如果这是真的,那么它将激发2和3(以避免必须path单独用空格引用每个部分)。如果不是,那么1似乎是首选,因为它是最简单的。
然而,在这里寻找例子,2是迄今为止最常见的,尽管作为一个特例VAR="$OTHER_VAR"/path/to/something?
bash ×1
coreutils ×1
disk-usage ×1
filesystems ×1
ls ×1
quoting ×1
shell ×1
shell-script ×1
stat ×1