是什么意思:
for i in *; do echo *; done
我在Unix终端(Mac OS X)上
Darwin localhost 13.1.0 Darwin Kernel Version 13.1.0: Thu Jan 16 19:40:37 PST 2014;
答案 0 :(得分:1)
有点多余。在这两个地方,*
将扩展到当前目录中的每个文件。因此,循环将对每个文件重复一次,每次i
设置为不同的文件名。然后,正文将只输出每个文件的名称,忽略i
。因此,如果目录中有10个文件,则将10次打印所有10个文件名。
答案 1 :(得分:0)
在unix shell下使用了许多特殊符号,用于关于bash。
*表示当前目录下按空格分割的所有文件名,您可以使用echo *进行测试。
〜代表你的主目录。
!用于历史命令。
#为评论。
$用于识别变量
%用于工作
^用于历史命令,格式为'^ string1 ^ string2 ^'以快速替换。
&安培;用于后台工作
*当前目录下按空格分割的所有文件名。
()配合$,$(命令)等效于`command`,$((1 + 2))计算数学表达式,如expr命令do。
- 用于旧的pwd,你可以使用'cd - '回到你切换的目录。
=用于作业。
你的代码
for i in *; do echo *; done
只需一个for循环打印当前目录下的所有文件名。