[過去ログ] シェルスクリプト総合 その26 [無断転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
932
(4): 名無しさん@お腹いっぱい。 [sage] 2018/05/03(木) 04:32:29.46 AAS
なお、俺が書いたコードだと以下のように正しく出力される

$ test.sh "a" "b${A}b" "c" "d" "e"
1: bb
b
b
b
b
2: c
3: d

>>925
925(2): 名無しさん@お腹いっぱい。 [sage] 2018/05/03(木) 03:20:16.97 AAS
このコードの応用でできますかね?
いまいちこのコードがなにやってるのかよくわからんのですが

外部リンク:unix.stackexchange.com

for arg do
shift
[ "$arg" = "-inf" ] && continue
set -- "$@" "$arg"
done

printf '%s\n' "$@"
を参考にして以下のように書いた

selectargnum() {
func=$1 start=$2 length=$3
shift 3
i=0 last=$((start+length))
for arg in "$@"; do
: $((i+=1))
[ $i -gt $length ] && shift
[ $i -ge $last ] && continue
shift
set -- "$@" "$arg"
done
$func "$@"
}
somefunc() {
printf '1: %s\n' "$1"
printf '2: %s\n' "$2"
printf '3: %s\n' "$3"
}
selectargnum somefunc 2 3 "$@"
933: 名無しさん@お腹いっぱい。 [sage] 2018/05/03(木) 04:34:38.30 AAS
ただ問題は、>>932のコードを書いた俺自身が
なんでこのコードで動くのかよく分かってない所だなw
誰か俺の書いたコードが何をやってるのか教えてくれw

>>925のコードはなにやら引数を一周させているみたいだ。
俺が書いたコードは、その一周を途中で中断させているようだな?
938
(1): 名無しさん@お腹いっぱい。 [sage] 2018/05/03(木) 05:49:25.62 AAS
>>932
ちょっとリファクタリング(ってほど大層じゃないが)
selectargnum() {
 func="$1"; start=$2; length=$3
 shift 3
 i=0; last=$((start + length))
 for arg in "$@"; do
  i=$((i + 1))
  test ${i} -gt ${length} && shift
  test ${i} -ge ${last} && continue
  shift
  set -- "$@" "${arg}"
 done
 "${func}" "${@}"
}
971
(1): 名無しさん@お腹いっぱい。 [sage] 2018/05/03(木) 14:32:04.43 AAS
はぁ?教えてもらうも何も>>932で自力で解いたし
>>934
934(1): 名無しさん@お腹いっぱい。 [sage] 2018/05/03(木) 04:37:45.65 AAS
eval使ったほうが簡潔かつ速い気がしてきたw
set -- の所、何度も引数をずらす処理をしているわけだしね。
でeval使ったほうが良いかもって、
それは最初からわかってるよアピール(笑)もしたし
お前はなにか役に立ったのか?

俺に問題が間違ってるといちゃもんを付けた挙げ句
結局、俺の足元にも及んでないじゃんw
979: 名無しさん@お腹いっぱい。 [sage] 2018/05/03(木) 16:29:15.75 AAS
>>977
977(1): 名無しさん@お腹いっぱい。 [sage] 2018/05/03(木) 15:57:16.13 AAS
たしかに俺のコードは長すぎたし引数に改行が含まれると各行を引数だと見做してしまう
修正が困難な不具合があるからね(もし可能だという方がいるなら是非教えてほしい)。
実は俺自身もシェルスクリプトの経験はあまりないんだ。まだ仕事してねーし。
それが原因で場が乱れたとするなら申し訳ない。
ただ、言わせてもらうが、俺は寧ろ荒れた原因は「問題が間違ってる; 質問は正しい態度で」なんていう
主張をageながら口説いてる奴にあると思うがな。
いや、だから>>932で自力で解いたってw
eval使ったほうが良さそうだけど
(ここまで自力の結論というかeval版は質問前に作っていたがね)
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.248s*