TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
FreeBSDの完成度の低さについて
GNOMEの質問はここに書き込め!
Windows禁止の職場に勤める人の集い
Emacs撲滅委員会 その2
BSDって死滅しちゃうの?
好きなパスを書け@UNIX
自衛隊の火器がUNIXでないのは間違っている
ウィンドウマネージャ総合 その3
うるう秒
データ解析ツールoctaveを語ろう Part 2
924 :
#! /bin/sh -

selectargnum()
{
fromargnum=$1
toargnum=$2
shift ${fromargnum}
for arg in $(seq $((toargnum - fromargnum + 1))); do
printf '%s\n' "$2"
shift
done
}

selectargnum 2 4 "$@"

もうちょっと親切に書くわ。

シェル函数selectargnumの
::仕様::
selectargnum <開始位置> <終了位置> <(処理したい)引数>
開始位置・終了位置は省略不可で,常識的な範囲であることを前提にしている。
::使い方::
上のコードを適当な名前のファイル(例えばselarg.sh)に保存して実行権限を賦与。
$ chmod +x ./selarg.sh
あとはファイル中のselectargnum函数の第1,2引数を書き換えて使える。
上の例なら
$ ./selarg.sh "第1引数" "第2引数" "第3引数" "第4引数" "第5引数"
に対して
第2引数
第3引数
第4引数
という出力が得られる。

925 :
seqを除いてPOSIX準拠。
もしもより厳密にPOSIXに従いたければ当該箇所を
seq $((toargnum - fromargnum + 1))
から
yes | head -n $((toargnum - fromargnum + 1))
としてもいいだろう。

926 :
>>922のせいで勘違いさせたようですね

> 別の関数の引数に渡すのってどうやればいいだろうか?
重要なのはこれ

another_function() {
for i in "$@"; do
printf "%s\n" "$i"
done
}

foo() { another_function "${@:2:3}"; }

another_functionはそのまま使って、
fooの部分をPOSIX準拠にして
以下のような出力を得たいということです

$ foo a "b 1" "c 1" d e
b 1
c 1
d

unixユーザーのたべもの
デーモン君に引退をせまる署名スレ
神聖モテモテUNIX
IMEなんとかしろ
IRIX 教えてスレッドその 1
Hi-UXだぞゴルァ
Cygwin使っている人いますか? その22
【地球シミュレータ】NECのスパコン【SXシリーズ】
UNIXが最高のOSでない理由を3行で説明するスレ
日本で5の指に入るくらい凄腕のハッカー
--------------------
麺の太さ1.6mmがベストと思ってる馬鹿ちょっとこい
JAVAってこんなことも出来ないの?
【元祖】菊容子【特撮ヒロイン】
【逃走中:12日目】 連日3000人を動員して追うも、いまだ確保できず [219241683]
2級建築士スレに現れたシンデレラとゆかいな仲間
ご当地ゆるキャラ総合スレ 2
【いもシス】香月杏珠 16【グラビア・踊り手】
硬式フォアハンド総合28
Sigur Ros Part26
【生涯2つ目の専スレ】戦記ヲチスレ Part39
【NHK大阪】石橋亜紗さん その19【ニュースほっと関西】
肴27463
バイオハザードアウトブレイク総合スレ 61
【40代】初音ミク
兵庫県の倶楽部・コース何でも語りませう2H
笹徳印刷株式会社
合田雅史
北海道のアナウンサーを語ろう36
50代の奥様(ID梨) part390
トウカイテイオー後継種牡馬プロジェクトに物凄い配合がある件
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼