小编Luk*_*keB的帖子

当路径作为参数给出时,“For”循环不会迭代列表

我正在练习shell 脚本,并尝试制作一个简单的脚本,该脚本将目录作为参数,循环遍历其中的每个文件并打印出其名称和大小。

\n
#!/bin/bash\n# A practice shell script to try and display a list of file names\n# and their sizes using the output of ls -l and cut.\ndeclare -i index\nexport index=0\nexport name=""\nexport size=0\n\nfor file in $1 ; do\n   index+=1\n   name=`basename $file`\n   size=`ls -l $file | cut -d " " -f 5`\n   echo "$index: $name, size: $size bytes"\ndone\n
Run Code Online (Sandbox Code Playgroud)\n

当我./*作为参数给出时,它会针对一个文件执行此操作,仅此而已。但是,如果我编辑上面的代码并将其放在./*的位置$1,它就会工作并循环当前目录中的所有文件。

\n

为什么\xe2\x80\x99 不会做同样的事情,什么时候$1应该等于./*

\n

bash shell-script wildcards

2
推荐指数
1
解决办法
2790
查看次数

标签 统计

bash ×1

shell-script ×1

wildcards ×1