我知道如何get the last argument passed to a function,但是我想知道如何在前两个函数之后获取函数的所有参数:
例如:
function custom_scp(){
PORT=$1
USER=$2
SOURCES=`ALL_OTHER_ARGS`
scp -P $PORT -r $SOURCES $USER@myserver.com:~/
}
因此,将三个文件发送到远程home
目录就像
$ custom_scp 8001 me ./env.py ./test.py ./haha.py
答案 0 :(得分:9)
在您完成对shift的操作后,只需{{3}}就可以了;剩下的将在start = data1(1:4,:); % This is not necessarily a good initialization!
result1 = kmeans(data1, 4, 'Start',start);
中。
这具有与所有POSIX shell兼容的优点(下面使用的唯一扩展名是"$@"
,并且是一个广泛使用的扩展名,甚至在local
中也可用)。
dash
答案 1 :(得分:6)
您可以使用数组切片符号:
custom_scp() {
local port=$1
local user=$2
local sources=("${@:3}")
scp -P "$port" -r "${sources[@]}" "$user@myserver.com:~/"
}
引用Bash manual:
${parameter:offset}
${parameter:offset:length}
如果 parameter 为
@
,则结果为从 offset 开始的 length 个位置参数。