История изменений
Исправление vodz, (текущая версия) :
Ну нате:
#!/bin/ash
foo() {
echo "args=$# $@"
}
foo_without_last_arg() {
local n=1
local sa
while [ $n -lt $# ]; do
eval "local a_$n=\$$n"
sa="$sa \"\$a_$n\""
n=$(($n+1))
done
eval "set --$sa"
foo "$@"
}
foo_without_last_arg
foo_without_last_arg a1
foo_without_last_arg a1 a2
foo_without_last_arg a1 a2 a3
foo_without_last_arg "a1 x" "*" '"' 4
Исходная версия vodz, :
Ну нате:
#!/bin/ash
foo() {
echo "args=$# $@"
}
foo_without_last_arg() {
if [ $# -le 1 ]; then
foo
return $?
fi
local n=1
local sa
while [ $n -lt $# ]; do
eval "local a_$n=\$$n"
sa="$sa \"\$a_$n\""
n=$(($n+1))
done
eval "set -- $sa"
foo "$@"
}
foo_without_last_arg
foo_without_last_arg a1
foo_without_last_arg a1 a2
foo_without_last_arg a1 a2 a3
foo_without_last_arg "a1 x" "*" 3