假设我的 shell 脚本有 3 个参数:
./myscript dir1 material dir2
我需要$#
报告使用的项的计数dir1/*
,而不是脚本的原始 3 个参数的计数。
你知道我可以用什么方法应用这个代码吗?
答案1
for arg
do set -- "$arg/"*
[ -e "$1" ] &&
printf '%s/*:\t%d\n' "$arg" "$#"
done
如果您想在执行此类循环后保留原始参数:
argc=$#
for arg
do set -- "$arg/"* "$@"
[ -e "$1" ] &&
printf '%s/*:\t%d\n' "$arg" "$((${#}-argc))"
shift "$((${#}-argc))"
done