通过参数在bash
问题描述:
循环我写一个接受文件作为参数,并为每个文件的一些数量的脚本,输出一条消息关于如何引用while循环中的参数通过参数在bash
这是我的代码
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
答
只是想迭代OVE r值,而不是索引。注意这是所有POSIX标准的shell。
for i in "[email protected]"; 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文档:
read -r size dir <<< "$(du -s "$i")"
的规范方式来遍历所有的论点是'为我do'('因为我; do'也被接受通过我知道的所有shell。) – rici
不,这是一个捷径,如果你省略了显式的序列迭代。 – chepner
它完美的工作,但我不明白EOF做什么 – Ahmad