- 1 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/20(月) 12:07:26.41 .net]
- シェルスクリプトの総合スレです。
□お約束 ・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。 FreeBSDユーザは/bin/shの正体がashなので注意。 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。 src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/ heirloom.sourceforge.net/sh.html ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) ・シェルスクリプトのことをシェルってゆーな □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも awkまたはperlの方が適した処理にはそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 □回答者への注意事項: ・シェルスクリプトでの処理方法を質問しているのに、よくわからずに 「そういうのはperl使いましょう」と回答するのはやめましょう。 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。 前スレ シェルスクリプト総合 その25 echo.2ch.net/test/read.cgi/unix/1439563321/
- 920 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/04/29(日) 00:02:10.75 .net]
- まあ使えないわけじゃないし候補にはなるけど、
OSごとに処理分けるの嫌だなぁ
- 921 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/04/29(日) 00:07:48.59 .net]
- /bin/timeって明示すれば?
- 922 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/04/29(日) 02:10:30.87 .net]
- もしくは
command -p time
- 923 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/04/29(日) 08:34:10.39 .net]
- いや、だからtimeコマンドだと
シェル関数扱えないからだめだって言ってるやん?
- 924 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/04/29(日) 11:24:09.19 .net]
- 放置で
- 925 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/04/29(日) 18:50:59.66 .net]
- どうぞ
- 926 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/04/30(月) 09:52:20.53 .net]
- mkfifo便利すぎる
- 927 名前:名無しさん@お腹いっぱい。 [2018/04/30(月) 10:17:56.64 .net]
- シェルスクリプトの入門書を教えてください
ソフトバンクから出てるUNIXシェルスクリプト〜みたいな書名のものがAmazonでは評価高いみたいなんですが… 先輩方のおすすめを教えてください
- 928 名前:名無しさん@お腹いっぱい。 [2018/04/30(月) 14:27:06.11 .net]
- >>903
こういう分野に関してはいまだにオライリーは信頼できる書籍を発行してるぜ。 まあ俺の持論だがw https://www.oreilly.co.jp/books/4873112672/ ↑これとか参考になる。コマンドの列挙だけじゃなく、システムとシェルの性質とか非常に基礎的な部分から触れてるのでよい(と思う)。
- 929 名前:900 [2018/04/30(月) 16:27:23.98 .net]
- >>904
>システムとシェルの性質とか これ正に知りたいことです 連休中本屋さん行くので是非中身読んで検討します ありがとうございます
- 930 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 16:02:31.91 .net]
- コマンドの出力結果を一時ファイルを作らずに
一行一変数に入れたいんですけどい
- 931 名前:い方法はないでしょうか?
変数はLINE1、LINE2・・・みたいな名前で bash依存になる配列は使わない方針です。 foo | while read -r line; do LINE1=$line done みたいにするとサブシェルだから ループ終わると消えてしまうし [] - [ここ壊れてます]
- 932 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 16:34:46.41 .net]
- sedかawkで代入文いっぱい出してevalかな。
特殊文字のエスケープちゃんと書かないといけないけど。
- 933 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 16:42:46.69 .net]
- cat <<. |
1st Line 2nd Line 3rd Line . while read -r lineval; do ctlino=$((ctlino + 1)) printf '%s%s' 'LINE'"${ctlino}"'='"$(printf '%s' "'")""${lineval}""$(printf '%s' "'")" ';' done | printf '%s%s\n' "$(cat)" ':' とりあえずこうすると LINE1='1st Line';LINE2='2nd Line';LINE3='3rd Line';: という出力が得られる。これを評価すればいいと思ったができねえ。
- 934 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 16:59:04.80 .net]
- 改良?
cat <<'EOF' | 1st Line 2nd Li'ne 3rd Line EOF while read -r lineval; do ctlino=$((ctlino + 1)) printf '%s' "${lineval}" | sed 's/'"'"'/'"'"'"&"'"'"'/g' | printf '%s%s' 'LINE'"${ctlino}"'='"'""$(cat)""'" '; ' done → LINE1='1st Line'; LINE2='2nd Li'"'"'ne'; LINE3='3rd Line'; :
- 935 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 17:00:08.10 .net]
- 改良?
cat <<'EOF' | 1st Line 2nd Li'ne 3rd Line EOF while read -r lineval; do ctlino=$((ctlino + 1)) printf '%s' "${lineval}" | sed 's/'"'"'/'"'"'"&"'"'"'/g' | printf '%s%s' 'LINE'"${ctlino}"'='"'""$(cat)""'" '; ' done | printf '%s%s\n' "$(cat)" ':' とりあえず単引用符のエスケープだけ。他にも必要なものがあればsedを挟んでいけばいいんでは。
- 936 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 17:12:01.86 .net]
- > sedかawkで代入文いっぱい出してevalかな。
やっぱり残る手はそれか
- 937 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 17:18:49.70 .net]
- $ radico rec -id=FMT -s=20180502040000
というコマンドがあったとして、「-s=」あとに今日の朝4時「date +"%Y%m%d"040000」の結果を入れたいんですが、一行で書く方法を教えてください
- 938 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 17:28:29.77 .net]
- お前はこの前のレス群に対する結果とか報告してからにしろ
- 939 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 18:12:16.93 .net]
- 何も考えずぶん投げるけど変数exportとかじゃだめなのか
- 940 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 18:28:09.05 .net]
- 出来ました!
- 941 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 19:53:51.97 .net]
- >>912
$ radico rec -id=FMT -s=$(date "+%Y%m%d040000") コマンド置換くらい自力で調べーや
- 942 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 21:09:33.58 .net]
- 引数 $1 $2 $3 ・・・ のうち、特定の範囲n〜mを
別の関数の引数に渡すのってどうやればいいだろうか? n〜mは条件で変わるものとする
- 943 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 21:27:56.41 .net]
- >>917
一兆個のシェルを書いてきた俺がそんな事必要になった事がないから お前の解こうとしてる問題が間違っている
- 944 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 21:34:19.62 .net]
- >>918
やってることが簡単なパーサーのようなものですからね。 exprをシェルスクリプトで実装しているようなものです。 流石にこういう高度なことはやったことがないのでは?
- 945 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 22:27:50.67 .net]
- shift $argnum
とかは?
- 946 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 22:47:14.90 .net]
- >>920
それだと前からn個以降は実現可能だけど 範囲ができないんですよね。
- 947 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/02(水) 22:51:49.30 .net]
- bashだとこんな感じですね
foo() { echo "${@:2:3}"; } $ foo 1 2 3 4 5 2 3 4
- 948 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 00:40:42.42 .net]
- >>921
for文使えば? selectargnum() { fromargnum=$1 toargnum=$2 shift ${fromargnum} for arg in $(seq $((toargnum - fromargnum + 1))); do printf '%s\n' "$2" && shift done } selectargnum 3 5 "$@" 注意: シェル函数への第1,2引数は必ず非負整数で,引数の範囲内であるべし。
- 949 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 00:47:51.26 .net]
- #! /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 <開始位置> <終了位置> <(処理したい)引数> 開始位置・終了位置は省略不可で,常
- 950 名前:識的な範囲であることを前提にしている。
::使い方:: 上のコードを適当な名前のファイル(例えばselarg.sh)に保存して実行権限を賦与。 $ chmod +x ./selarg.sh あとはファイル中のselectargnum函数の第1,2引数を書き換えて使える。 上の例なら $ ./selarg.sh "第1引数" "第2引数" "第3引数" "第4引数" "第5引数" に対して 第2引数 第3引数 第4引数 という出力が得られる。 [] - [ここ壊れてます]
- 951 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 00:50:36.20 .net]
- seqを除いてPOSIX準拠。
もしもより厳密にPOSIXに従いたければ当該箇所を seq $((toargnum - fromargnum + 1)) から yes | head -n $((toargnum - fromargnum + 1)) としてもいいだろう。
- 952 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 03:17:05.15 .net]
- >>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
- 953 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 03:18:03.35 .net]
- eval使うしか無いっすかね?
- 954 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 03:20:16.97 .net]
- このコードの応用でできますかね?
いまいちこのコードがなにやってるのかよくわからんのですが https://unix.stackexchange.com/questions/258512/how-to-remove-a-positional-parameter-from for arg do shift [ "$arg" = "-inf" ] && continue set -- "$@" "$arg" done printf '%s\n' "$@"
- 955 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 03:42:12.53 .net]
- >>926
おいおいヒドいな俺の>>923-925は無視かよ 引数をどうにかしたいコマンドをsomefuncとして #! /bin/sh - selectargnum() { fromargnum=$1 toargnum=$2 shift ${fromargnum} for arg in $(yes | head -n $((toargnum - fromargnum + 1))); do printf '%s\n' "$2" shift done } somefunc() { printf '%s\t%s\n%s\n' "$2" "$3" "$1" } somefunc $(selectargnum 2 4 "$@") こういうので実現できると思うんだが? なにかこれでは駄目な点があれば言ってくれ。 せっかくGW中とは言え頭使ったのにあまりにもあまりな仕打ちじゃマイカ
- 956 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 04:08:41.64 .net]
- >>929
somefuncは分かりづらいんでこう書き換えるけど somefunc() { printf '%s\n' "$@" } $ test.sh "a" "b" "c" "d" "e" b c d こうなるところ $ test.sh "a 1" "b 1" "c 1" "d 1" "e 1" b 1 c 1 d 1
- 957 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 04:23:08.37 .net]
- somefuncはこうしないとだめだな。
何番目の変数に入っているのか分かりづらい somefunc() { printf '1: %s\n' "$1" printf '2: %s\n' "$2" printf '3: %s\n' "$3" }
- 958 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 04:23:43.87 .net]
- なんかすごいどうでもいいことしてる気にならん?
- 959 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 04:26:07.99 .net]
- しょうがないだろう。
引数には空白、シングルクォート、ダブルクォート、改行が 含まれる可能性があるんだよ
- 960 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 04:29:26.87 .net]
- 一見うまくいったと思いきや
$ test.sh "a" "b" "c" "d" "e" 1: b 2: c 3: d 変数Aに改行が含まれている文字列を入れ $ A="b b b b " 以下のように実行するとおかしくなる $ test.sh "a" "b${A}b" "c" "d" "e" 1: bb 2: b 3: b > なにかこれでは駄目な点があれば言ってくれ。 駄目な点を言った
- 961 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 04:32:29.46 .net]
- なお、俺が書いたコードだと以下のように正しく出力される
$ test.sh "a" "b${A}b" "c" "d" "e" 1: bb b b b b 2: c 3: d >>928を参考にして以下のように書いた 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 "$@"
- 962 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 04:34:38.30 .net]
- ただ問題は、>>935のコードを書いた俺自身が
なんでこのコードで動くのかよく分かってない所だなw 誰か俺の書いたコードが何をやってるのか教えてくれw >>928のコードはなにやら引数を一周させているみたいだ。 俺が書いたコードは、その一周を途中で中断させているようだな?
- 963 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 04:37:45.65 .net]
- eval使ったほうが簡潔かつ速い気がしてきたw
set -- の所、何度も引数をずらす処理をしているわけだしね。
- 964 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 04:38:19.15 .net]
- 長い
読む気にならん
- 965 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 04:39:32.30 .net]
- 長くて読まないのはわかるが、
なぜ読まないということをわざわざ宣言するんだろう?
- 966 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 04:42:04.26 .net]
- まあ長いのは、>>929のコードに合わせたからであって、
メインの処理はこれだけなんだけどね i=0 start=2 length=3 last=$((start+length)) for arg in "$@"; do : $((i+=1)) [ $i -gt $length ] && shift [ $i -ge $last ] && continue shift set -- "$@" "$arg" done printf '1: %s\n' "$1" printf '2: %s\n' "$2" printf '3: %s\n' "$3"
- 967 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 05:49:25.62 .net]
- >>935
ちょっとリファクタリング(ってほど大層じゃないが) 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}" "${@}" }
- 968 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 06:31:02.21 .net]
- >>941
文字増やしてるだけじゃねーかw
- 969 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 06:31:17.96 .net]
- 不要な文字
- 970 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 06:50:55.78 .net]
- リファクタリングは文字数減らすことを言うのじゃないけど
- 971 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 07:41:52.01 .net]
- 不必要な機能
- 972 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 09:41:05.71 .net]
- 一旦SQLiteにでも格納すれば何でも出来るで
- 973 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 12:57:05.87 .net]
- なんか余計に読みづらくなっただけのような
- 974 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 13:11:25.55 .net]
- 解こうとしてる問題が間違っていると言ったやろw
- 975 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 13:13:23.38 .net]
- bashだと簡単にできるようになったことのどこが
間違っているというのだろうか?
- 976 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 13:14:48.71 .net]
- >>944
> リファクタリングは文字数減らすことを言うのじゃないけど リファクタリングは文字数を増やすことじゃないって話
- 977 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 13:16:44.77 .net]
- >>949
問題が間違っているとハッキリ書いとるやろwアホなん?
- 978 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 13:17:25.13 .net]
- なぜ問題が間違っているというのか?
結論を最初に持ってこないように
- 979 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 13:22:50.10 .net]
- >>952
あ、それが分からんのかw 引数の意味をパースすれば任意の位置指定でのスライスなど不要やからな つまりgetoptで十分な問題を間違った角度から解こうとしとるっつー事やw てかおまえ安価ぐらいできんのか
- 980 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 13:33:39.18 .net]
- どういう理屈で、引数の意味をパースすれば任意の位置指定での
スライスなど不要になるのでしょうか?
- 981 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 13:41:59.15 .net]
- >>954
まず安価しろ
- 982 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 13:43:07.07 .net]
- 例えばfindコマンドのように
find . -type f -exec chmod 600 {} \; -execが来たら、chmodコマンドを;までをオプションとして 渡して実行みたいなのはスライス相当のものがないとできませんね
- 983 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 13:44:07.01 .net]
- 自分がやったことがないことだからって
問題が間違ってるということにはなりませんよ
- 984 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 13:44:46.06 .net]
- >>953
根本的に何がしたいのかに依るんじゃねーのそれは 引数を解釈したいならgetoptでやるべきだが、今回やりたいのは引数のスライスそのものじゃね? bashなら一行でできるそれをbash依存せずにやるにはどうすればって話なんじゃないか まぁなんか妙なのが湧いてて話が無駄に複雑になってる感が否めないが
- 985 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 13:47:13.94 .net]
- まあ言わないでもわかるでしょうが、
わざとスルーされないように言っておきますと、 -execは残りの引数を全て、指定したコマンドの引数として実行するものではなく ; までを引数とします。だから以下のように複数の-execもしていできます。 find . -type f -exec echo {} \; -exec echo {} \;
- 986 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 13:53:29.10 .net]
- >>958
位置が固定ならいきなりスライスでも構わんが 今回のやつは任意の位置を指定したいと言っとるやろ つまりその任意の位置がどこか分かった時点で引数の解析は終わっとるから 必要な引数も選別できているはずなんや つまりそこからさらに位置指定でスライスしたいというのは 引数解析のアプローチが間違っとるいう訳やな
- 987 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 14:10:06.58 .net]
- >>960
そして、その選別した引数(複数)を別の関数に渡すんだろ? 配列があれば、配列に選別していった引数を入れていけばいいだろうが bash依存しないなら、配列は使えないよな。 お前ならどうするんだ?
- 988 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 14:10:06.74 .net]
- >>960
任意の位置をどう指定するのかが要望ないからそこは>>922みたいな位置の直書きを想定してた 多分位置の指定まで引数に組み込むような汎用性高いものは要求されてないだろう つまりいきなりスライスでいいと思ってる
- 989 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 14:17:44.04 .net]
- >>961-962
関数に渡すならその引数に割り当てた変数に保存しとくだけやな 可変個ならevalするやろしw どっちにしろもっと多くの状況がわからんと最適解は得られんわw
- 990 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 14:21:33.10 .net]
- >>963
> 関数に渡すならその引数に割り当てた変数に保存しとくだけやな >>917を読み返してみましょうか? > 引数 $1 $2 $3 ・・・ のうち、特定の範囲n〜mを > 別の関数の引数に渡すのってどうやればいいだろうか? > n〜mは条件で変わるものとする その引数に割り当てた変数とはなんですか? 結局↓これですか? > 934 自分:名無しさん@お腹いっぱい。[sage] 投稿日:2018/05/03(木) 04:37:45.65 > eval使ったほうが簡潔かつ速い気がしてきたw
- 991 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 14:22:57.28 .net]
- >>964
せやでw こいつは問題を複雑に考えすぎとるだけやw
- 992 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 14:23:53.17 .net]
- あれほど問題が間違っていると偉そうなこと言ったくせに
問題は間違ってないってことでいいんだろうな
- 993 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 14:24:26.11 .net]
- >>965
そっちじゃない。 いきなり問題が間違っているといちゃもんを付けたことに 謝れって言ってる
- 994 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 14:25:12.82 .net]
- >>966
正確には問題自体を複雑に考えすぎとるやなw こいつの問題設定自体が間違っとるんやw
- 995 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 14:25:16.94 .net]
- >>963
> どっちにしろもっと多くの状況がわからんと最適解は得られんわw 最初の質問の>>917に全て書かれてるじゃん 他に何の状況が知りたいのさ?
- 996 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 14:26:18.22 .net]
- >>968
なんで問題設定に話をすり替えてるの? 問題は>>917。問題が間違ってるといちゃもんを付けたのは>>918
- 997 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 14:26:43.00 .net]
- >>967
なんやおまえ質問した本人なんかw ならもっと情報をさらけだしてみw おにいちゃん達が手取り足取り教えてあげるやろからw
- 998 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 14:28:32.21 .net]
- >>971
なんだお前が問題が間違ってるといちゃもんつけたやつか? 問題は間違っていませんでした、ごめんなさいって謝れば?
- 999 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 14:29:43.06 .net]
- >>972
せやでw てか教えて欲しいくせに何いきなりキレとんねんw キチガイかおまえはw
- 1000 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 14:32:04.43 .net]
- はぁ?教えてもらうも何も>>935で自力で解いたし
>>937でeval使ったほうが良いかもって、 それは最初からわかってるよアピール(笑)もしたし お前はなにか役に立ったのか? 俺に問題が間違ってるといちゃもんを付けた挙げ句 結局、俺の足元にも及んでないじゃんw
- 1001 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 14:34:28.22 .net]
- >>974
だからな? もう少し柔軟なアタマと経験を持っとればそんな問題自体にぶちあたらんと言っとるのやでおいちゃんはw 人に教えてもらいたかったらもう少し素直になった方がええでおまえw
- 1002 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 14:38:23.58 .net]
- >>975
お前に経験がないから問題にぶち当たってないんだろうw それで、お前質問に答えずに逃げてるよな? >>960 そして、その選別した引数(複数)を別の関数に渡すんだろ? 配列があれば、配列に選別していった引数を入れていけばいいだろうが bash依存しないなら、配列は使えないよな。 お前ならどうするんだ?
- 1003 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 14:40:51.17 .net]
- >>976
いくらお子ちゃまでもナチュラルに話がループするバカにつきあう気はないで生憎w
- 1004 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 14:40:58.71 .net]
- 偉そうに>>960で引数の選別をする方法で
できるような言い方をしているということは、 "このやり方の続き" でやる方法も当然思いついてるはず 質問に答えようか。 まさかここまでいって、この方法じゃ実現不可能だった なんていうはずがないよなw
- 1005 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 15:39:01.57 .net]
- やたらめったに長ったらしいコード書いたアホが元凶
- 1006 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 15:57:16.13 .net]
- たしかに俺のコードは長すぎたし引数に改行が含まれると各行を引数だと見做してしまう
修正が困難な不具合があるからね(もし可能だという方がいるなら是非教えてほしい)。 実は俺自身もシェルスクリプトの経験はあまりないんだ。まだ仕事してねーし。 それが原因で場が乱れたとするなら申し訳ない。 ただ、言わせてもらうが、俺は寧ろ荒れた原因は「問題が間違ってる; 質問は正しい態度で」なんていう 主張をageながら口説いてる奴にあると思うがな。
- 1007 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 16:20:04.93 .net]
- どっちもはしゃぎ過ぎ
それに、安価だのageだの馬鹿みたい
- 1008 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 16:29:15.75 .net]
- >>980
いや、だから>>935で自力で解いたってw eval使ったほうが良さそうだけど (ここまで自力の結論というかeval版は質問前に作っていたがね)
- 1009 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 16:29:46.34 .net]
- >>981
> それに、安価だのageだの馬鹿みたい まったくだw 俺も最初からその2つは無視してるw
- 1010 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 16:31:30.06 .net]
- IDが出ないスレでこれほど見難い言い争いはあんま見ないな。いや醜いかw
- 1011 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 16:41:10.54 .net]
- ここって建設的じゃないよな、ホント
- 1012 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 17:10:05.54 .net]
- 自力で解いたっつてんだろ、何度も。偉ぶってんのはどっちなんだか。
- 1013 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 17:33:34.69 .net]
- 醜すぎw
- 1014 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 17:54:41.55 .net]
- はい、次スレ
シェルスクリプト総合 その27 https://mevius.5ch.net/test/read.cgi/unix/1525337663/
- 1015 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 19:24:32.42 .net]
- この人は問題を解きたいんじゃなくて
問題を自分のルールで解かせたいだけなんだと思う
- 1016 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 19:33:59.23 .net]
- 自分のルールってなんのことや?
- 1017 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 20:13:25.91 .net]
- そうじゃなくて呈示されたコードの完成度が低くて、かつ
自分で作ったコードが要件を満たしていたから「お前ら馬鹿ばっかだな」になるんでしょう?
- 1018 名前:名無しさん@お腹いっぱい。 [2018/05/03(木) 20:15:23.07 .net]
- ただのお子ちゃまやないかw
間違っとる言われてボクは間違ってないてすねとるだけやでw
- 1019 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 20:27:22.30 .net]
- >>991
要件じゃなくて、あれはバグだよ 正しく動いてないじゃないか
- 1020 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 20:28:19.18 .net]
- いまいち誰が誰だかなわからない追うのめんどくさすぎなのに、論評続けるねえ
質問内容に文句つけ続けのオッサン:一理あるが、一理でしかない。しつこいわっ 質問したヤツ:自力で解いたとかウザいわ。だったら最初から質問すんなwおっさんの一理を理解して素直に受け取れ
|

|