Use parameter expansion like so:
for i in "${@:1:10}"; do
echo "$i"
done
For more info, see man bash
-> Parameter Expansion
-> Substring Expansion
문제
I have written a command procedure that takes 12 positional arguments. How can i iterate only through the first 10 (for example). If i use shift [n]
, then argument $0 comes in but I don't want to use it.
Can I use something like list comprehension?:
for arg in [$1..$10]
do
echo $arg
done
해결책
Use parameter expansion like so:
for i in "${@:1:10}"; do
echo "$i"
done
For more info, see man bash
-> Parameter Expansion
-> Substring Expansion