循环的Bash脚本*

时间:2014-03-13 00:05:38

标签: bash unix terminal

是什么意思:

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;

2 个答案:

答案 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循环打印当前目录下的所有文件名。