zsh その7 (749レス)
上下前次1-新
抽出解除 レス栞
358(2): 名無しさん@お腹いっぱい。 [sage] 2014/08/01(金) 17:29:13.41 AAS
a=(1 2); b=(3 4 5); foo $a $b
みたいな感じで foo にリストを引数として渡す場合には foo はどう書けば良かろうか?
あ、a や b の要素数は可変で。
a と b を繋げたリストでよければ foo の中で c=($*) すればいいっぽいけど、別々に欲しい。
あれ local c=($*) したらエラーになるのはなんでだ?
360: 名無しさん@お腹いっぱい。 [sage] 2014/08/02(土) 05:21:24.46 AAS
>>358
自分も昔ハマったことがあるが、local では配列の宣言と同時には代入ができないみたい
359 が言うように変数名を渡す方法が最初に思い付くけどもっと良い方法があるのかな?
% a=(1 2); b=(3 4 5)
% foo() {local A B; A=(${(P)1}); B=(${(P)2}); echo "$1[2] -> $A[2], $2[2] -> $B[2]"}
% foo a b
a[2] -> 2, b[2] -> 4
390(1): 名無しさん@お腹いっぱい。 [] 2015/05/14(木) 21:41:00.34 AAS
>>358
力技ではこんなのがある。
a=(a b c)
b=$(printf "%c\0" $a |sed 's#\o0$##') # なんか変数に一度いれないと無理だね。
c ()
{
echo $1
echo $1 |tr '\0' ' '
}
c $b
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.169s*