我正在练习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
,它就会工作并循环当前目录中的所有文件。
为什么\xe2\x80\x99 不会做同样的事情,什么时候$1
应该等于./*
?