我正在编写一个脚本,接受一些文件作为参数,并为每个文件输出一条消息:
FILENAME的大小为SIZE千字节
我正在努力研究如何在while循环中引用参数
这是我的代码
i=1
while [ $i -le $# ]
do
echo "The size of $(du -s $1 | cut -f2) is $(du -s $1 | cut -f1) kilobytes"
i=$((i+1))
done
答案 0 :(得分:1)
只是迭代值,而不是索引。请注意,这是所有POSIX标准shell。
for i in "$@"; do
# Run du once, no need for cut
read -r size dir <<EOF
$(du -s "$i")
EOF
echo "The size of $dir is $size kilobytes"
done
您可以使用bash
中的here字符串替换here文档:
read -r size dir <<< "$(du -s "$i")"