!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
シェルスクリプトに関する総合スレッドです。
スレ立て時は以下の文を先頭行に加えて下さい。
後のつけ忘れ防止の為に複数行重ねて追加推奨
!extend:on:vvvvv:1000:512
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ
シェルスクリプト総合 その28
http://mevius.5ch.net/test/read.cgi/tech/1532397676/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
シェルスクリプト総合 その29
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 3efb-m2E0)
2018/09/22(土) 11:53:21.38ID:BBiLRgnj0395デフォルトの名無しさん (ブーイモ MMba-rFq1)
2018/11/01(木) 18:37:54.39ID:eWvFwheDM sedじゃあかんのけ?
396デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 18:50:36.53ID:Kkuf6Nxk0 >>395
sedでできるならsedでもいいけど。
やっぱり無理だよなぁ
結局、奇数行のデータを後からだすためには
どこかにためておく必要があるわけで
メモリかディスクはどうしても使用してしまう
二回のループにするなら、メモリもディスクも消費しないけど
今度は入力データをためておく必要がある
sedでできるならsedでもいいけど。
やっぱり無理だよなぁ
結局、奇数行のデータを後からだすためには
どこかにためておく必要があるわけで
メモリかディスクはどうしても使用してしまう
二回のループにするなら、メモリもディスクも消費しないけど
今度は入力データをためておく必要がある
397デフォルトの名無しさん (ワッチョイ 5b64-74J5)
2018/11/01(木) 19:37:55.15ID:upF+pHX50 >>393
もし変数を使っていいなら,どうやって書くの?
もし変数を使っていいなら,どうやって書くの?
398デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 19:42:09.40ID:Kkuf6Nxk0399デフォルトの名無しさん (アウアウウー Sac7-AdN2)
2018/11/01(木) 19:46:11.92ID:OxvwXsOaa 元データがファイルに入っていて2回読んで良くて尚且つ変数使って良いなら楽だよ、っていうかそれなら誰でも作れるかw
400デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 19:51:11.07ID:Kkuf6Nxk0 遅くなるのでディスクに書き込みたくないし、メモリも
あまり使用したくなかったんだけど仕方ないか
実際には偶数行、奇数行じゃなくて、データを種類ごとに前後に分けたくて
後ろに分けるデータは基本的に少ないってことがせめてもの救いか
あまり使用したくなかったんだけど仕方ないか
実際には偶数行、奇数行じゃなくて、データを種類ごとに前後に分けたくて
後ろに分けるデータは基本的に少ないってことがせめてもの救いか
401デフォルトの名無しさん (ワッチョイ c703-gRbH)
2018/11/01(木) 19:58:02.45ID:zOBF+lvD0 なんでバカって実行速度ばかり気にするんや?
402デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 19:59:10.65ID:Kkuf6Nxk0 何度も実行するものなので、遅いとストレスたまるから
403デフォルトの名無しさん (ワッチョイ c703-gRbH)
2018/11/01(木) 20:00:23.29ID:zOBF+lvD0 バカなのにストレスたまるの?バカやめたら?
404デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 20:03:44.33ID:Kkuf6Nxk0 その理屈だと、
・バカなのにストレス溜まるの?(不思議)
・バカじゃないならストレス溜まる(普通)
ってことになるから、
バカやめたら、それこそストレス溜まるのでは?
・バカなのにストレス溜まるの?(不思議)
・バカじゃないならストレス溜まる(普通)
ってことになるから、
バカやめたら、それこそストレス溜まるのでは?
405デフォルトの名無しさん (ワッチョイ c703-gRbH)
2018/11/01(木) 20:18:26.34ID:zOBF+lvD0 バカの理屈わろたw
バカなんやから考えん方がええで
バカなんやから考えん方がええで
406デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 20:23:45.26ID:Kkuf6Nxk0 なにか言い返せよw
407デフォルトの名無しさん (ワッチョイ c703-gRbH)
2018/11/01(木) 20:37:24.98ID:zOBF+lvD0 バカに言いかえすとか無理やわ理屈がないからバカなんやでおまえ
408デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 20:38:28.76ID:Kkuf6Nxk0 そりゃね。>>404が正しいから何も言いえせないわなw
409デフォルトの名無しさん (ブーイモ MMba-4S5W)
2018/11/01(木) 20:43:56.74ID:RCcSs0UBM お前ら、哲学者か何かなん?
410デフォルトの名無しさん (ワッチョイ c703-gRbH)
2018/11/01(木) 20:50:42.34ID:zOBF+lvD0 バカとバカを嘲笑う者や
411デフォルトの名無しさん (ワッチョイ 4e81-8AGB)
2018/11/01(木) 20:51:14.40ID:5U41yww90 奇数行だけ抽出するスクリプトと
偶数行だけの二つ作って、
奇数行スクリプトの出力に偶数行のを追記させる
なんとなくそんなイメージ
偶数行だけの二つ作って、
奇数行スクリプトの出力に偶数行のを追記させる
なんとなくそんなイメージ
412デフォルトの名無しさん (オッペケ Srbb-elto)
2018/11/01(木) 21:54:51.76ID:zo7FxUKXr 速度言うならCなりJavaで書いてデーモン化して動かさんとな
シェルスクリプト特有のコマンド羅列のプロセス起動しまくりってのは
すごいコストがかかってる
シェルスクリプト特有のコマンド羅列のプロセス起動しまくりってのは
すごいコストがかかってる
413デフォルトの名無しさん (ブーイモ MMba-rFq1)
2018/11/01(木) 21:57:34.95ID:eWvFwheDM 偶数行抽出
grep "Kkuf6Nxk0"
奇数行抽出
grep "zOBF+lvD0"
楽勝すぎるわ
grep "Kkuf6Nxk0"
奇数行抽出
grep "zOBF+lvD0"
楽勝すぎるわ
414デフォルトの名無しさん (オッペケ Srbb-elto)
2018/11/01(木) 21:58:38.71ID:zo7FxUKXr >>404
いや普通なら落としどころ決めるだろ
シェルスクリプトだからあきらめるとか
ちゃんとした言語で作るとか
バカだから漠然と心配ばかりしてストレスが溜まる
今も月が落ちてくる心配でもしてるんじゃないの
いや普通なら落としどころ決めるだろ
シェルスクリプトだからあきらめるとか
ちゃんとした言語で作るとか
バカだから漠然と心配ばかりしてストレスが溜まる
今も月が落ちてくる心配でもしてるんじゃないの
415デフォルトの名無しさん (ワッチョイ 038a-Mg3v)
2018/11/01(木) 21:59:28.16ID:JoiMeSvG0 >>412
デーモンだって実行プロセスは立ち上げないとダメだろ
デーモンだって実行プロセスは立ち上げないとダメだろ
416デフォルトの名無しさん (ワッチョイ c703-gRbH)
2018/11/01(木) 21:59:49.59ID:zOBF+lvD0 >>413
シェルが固まったんやがウイルスちゃうやろな?直しかた教えろバカ
シェルが固まったんやがウイルスちゃうやろな?直しかた教えろバカ
417デフォルトの名無しさん (オッペケ Srbb-elto)
2018/11/01(木) 21:59:57.39ID:zo7FxUKXr >>413
後出しで奇数偶数じゃないって言ってるよ
後出しで奇数偶数じゃないって言ってるよ
418デフォルトの名無しさん (ワッチョイ 9ab3-gRbH)
2018/11/01(木) 22:00:55.53ID:45pCF+y00 seq 5 | awk '{print ($1%2?"b":"a") $1}' | sort -V | cut -c2-
419デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 22:06:42.28ID:Kkuf6Nxk0420デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 22:08:20.21ID:Kkuf6Nxk0421デフォルトの名無しさん (ワッチョイ c703-gRbH)
2018/11/01(木) 22:09:12.59ID:zOBF+lvD0 バカはいいかげん黙っとけ
422デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 22:12:35.86ID:Kkuf6Nxk0423デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 22:13:57.69ID:Kkuf6Nxk0424デフォルトの名無しさん (ワッチョイ c703-gRbH)
2018/11/01(木) 22:16:53.31ID:zOBF+lvD0 >>423
要するにバカやんけおまえ
要するにバカやんけおまえ
425デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 22:19:28.46ID:Kkuf6Nxk0 まだNGにしてないのか?
426デフォルトの名無しさん (ワッチョイ c703-gRbH)
2018/11/01(木) 22:21:41.75ID:zOBF+lvD0427デフォルトの名無しさん (ワッチョイ 9ab3-gRbH)
2018/11/01(木) 22:22:49.71ID:45pCF+y00 ああもぅめんどくせぇなw 順番変えたくないなら stable sort でええやんけ
メモリがどーたらこーたらは知らんw
$ cat hogehoge | awk '{print ($1%2?"b":"a") "\t" $1}' | sort -s -k1,1 | cut -f2
メモリがどーたらこーたらは知らんw
$ cat hogehoge | awk '{print ($1%2?"b":"a") "\t" $1}' | sort -s -k1,1 | cut -f2
428デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 22:22:56.19ID:Kkuf6Nxk0 じゃあなんで黙れって言ったの?
俺が書き込みしなきゃ、お前出てこれないじゃん
矛盾してるよね。
俺が書き込みしなきゃ、お前出てこれないじゃん
矛盾してるよね。
429デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 22:23:55.45ID:Kkuf6Nxk0 >>427
いや、頑張らなくていいよw
いや、頑張らなくていいよw
430デフォルトの名無しさん (ワッチョイ c703-gRbH)
2018/11/01(木) 22:25:19.85ID:zOBF+lvD0 >>428
バカはしゃべるな
バカはしゃべるな
431デフォルトの名無しさん (オッペケ Srbb-elto)
2018/11/01(木) 22:31:12.95ID:zo7FxUKXr432デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 22:35:03.93ID:Kkuf6Nxk0 だから仕方ないかって書いてんのにw
ほんと人の話読まないやつだな
400 自分:デフォルトの名無しさん (ワッチョイ ab98-QXT6)[sage] 投稿日:2018/11/01(木) 19:51:11.07 ID:Kkuf6Nxk0 [4/15]
遅くなるのでディスクに書き込みたくないし、メモリも
あまり使用したくなかったんだけど仕方ないか
ほんと人の話読まないやつだな
400 自分:デフォルトの名無しさん (ワッチョイ ab98-QXT6)[sage] 投稿日:2018/11/01(木) 19:51:11.07 ID:Kkuf6Nxk0 [4/15]
遅くなるのでディスクに書き込みたくないし、メモリも
あまり使用したくなかったんだけど仕方ないか
433デフォルトの名無しさん (アウアウカー Sac3-68Wn)
2018/11/01(木) 22:35:30.89ID:bLNYdVH2a えっなにこれは…
434デフォルトの名無しさん (ワッチョイ 5b64-74J5)
2018/11/01(木) 22:36:17.06ID:upF+pHX50 tee(1)コマンド使ったらいけるかなとか考えたが無理かな。
435デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 22:43:09.27ID:Kkuf6Nxk0 >>434
片方ファイルだもんね。
メインプロセス起動(出力を2つに分岐)
├出力1 偶数行表示プロセス実行
└出力2 奇数行表示プロセス実行(偶数行表示プロセス終了後に処理開始)
みたいな事ができるかな?と思ったんだけど
まあ、これでも内部的には出力がバッファに
溜め込まれてるんだろうけどね
片方ファイルだもんね。
メインプロセス起動(出力を2つに分岐)
├出力1 偶数行表示プロセス実行
└出力2 奇数行表示プロセス実行(偶数行表示プロセス終了後に処理開始)
みたいな事ができるかな?と思ったんだけど
まあ、これでも内部的には出力がバッファに
溜め込まれてるんだろうけどね
436デフォルトの名無しさん (オッペケ Srbb-elto)
2018/11/01(木) 22:48:35.54ID:zo7FxUKXr >>432
お前ホントバカだな
お前のようなバカのためにプログラム書いてやったぞ
eo-sort.exe
第一引数に入力ファイルを渡せば標準出力に
まず偶数業出してその後に奇数業出してくれる
必要ならそれをファイルにリダイレクトしなよ
お前ホントバカだな
お前のようなバカのためにプログラム書いてやったぞ
eo-sort.exe
第一引数に入力ファイルを渡せば標準出力に
まず偶数業出してその後に奇数業出してくれる
必要ならそれをファイルにリダイレクトしなよ
437デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 22:49:59.34ID:Kkuf6Nxk0 いらねっす
438デフォルトの名無しさん (オッペケ Srbb-elto)
2018/11/01(木) 22:53:44.24ID:zo7FxUKXr ああ、あと出し情報で偶数奇数じゃなかったんだよな
そりゃいらないわなw
そりゃいらないわなw
439デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/01(木) 22:54:34.69ID:Kkuf6Nxk0 え?あぁ、そうだな
440デフォルトの名無しさん (ワッチョイ 5b64-ofXo)
2018/11/01(木) 23:01:11.09ID:upF+pHX50 >>435
というかよく読んだら「ファイルディスクリプタをうまく使う」ってそういうことだよね
teeっていうのはファイルと標準出力に書き込む「ファイルディスクリプタをうまく使う」コマンドの一つなんだからさ。
まあ俺には変数使わずに出力を分けるのは無理かな。
ところで変数使わない理由はPOSIXシェルスクリプトは変数のスコープができず
利用者が定義している定数を潰す可能性があるからって理解でいいのかな?
というかよく読んだら「ファイルディスクリプタをうまく使う」ってそういうことだよね
teeっていうのはファイルと標準出力に書き込む「ファイルディスクリプタをうまく使う」コマンドの一つなんだからさ。
まあ俺には変数使わずに出力を分けるのは無理かな。
ところで変数使わない理由はPOSIXシェルスクリプトは変数のスコープができず
利用者が定義している定数を潰す可能性があるからって理解でいいのかな?
441デフォルトの名無しさん (ワッチョイ 038a-Mg3v)
2018/11/01(木) 23:17:46.65ID:JoiMeSvG0 印刷して紙でやればメモリもディスクも使わないんじゃね?
442デフォルトの名無しさん (アウアウカー Sac3-68Wn)
2018/11/01(木) 23:22:18.99ID:0eDQcpEPa 天才か
443デフォルトの名無しさん (ワッチョイ 9ab3-gRbH)
2018/11/01(木) 23:31:18.23ID:45pCF+y00 じゃぁ moreutils の pee コマンドでも使ったら
$ cat hogehoge | pee 'awk "!(\$1%2)"' 'awk "\$1%2"'
$ cat hogehoge | pee 'awk "!(\$1%2)"' 'awk "\$1%2"'
444デフォルトの名無しさん (ワッチョイ 769f-MyS3)
2018/11/01(木) 23:58:02.32ID:s+SrulDE0 >>441
コペルニクス的転回だな。
コペルニクス的転回だな。
445デフォルトの名無しさん (ワッチョイ 76e7-75/g)
2018/11/02(金) 00:25:05.23ID:qf9daF/z0 同じターミナルに出力するのが仕様間違いだろ。スクロールバックがめんどくさい。
446デフォルトの名無しさん (ブーイモ MMba-MC7i)
2018/11/02(金) 01:50:44.73ID:RWqagkCBM447デフォルトの名無しさん (ワッチョイ 5aa2-cAEM)
2018/11/02(金) 03:41:34.10ID:fhEBIQ700 確かに
448デフォルトの名無しさん (ワッチョイ 5b64-74J5)
2018/11/02(金) 06:24:06.72ID:tmRne/9W0449デフォルトの名無しさん (ワッチョイ b69f-8AGB)
2018/11/02(金) 06:38:46.12ID:BwjETkqh0 あのう、プロセス動かすだけでメモリ消費してしまうんですが
変数や作業用ファイル作らなくても内部的な一時ファイルは作られるわけで
リソース消費しないで切り分けようとエディタ立ち上げて手作業でやっても、やっぱりリソース消費があるので
誰かが言ったように、ノートかなにかに手書き転記するしかないと思う
つうか、そんな人はコンピュータ使っちゃダメだと思う
まるで、経団連会長みたいなんだもの
最近会長室にコンピュータが導入されたらしい
あれこれ、たかが変数や作業用ファイル如きでリソース消費しないように考える時間など無駄中の無駄
なにも、惑星探査衛星の限られたリソースでなんとかするって話じゃないんだから
時間の使い方を間違っている
そんな下らない話題で、ここのスレのリソースも無駄遣い
変数や作業用ファイル作らなくても内部的な一時ファイルは作られるわけで
リソース消費しないで切り分けようとエディタ立ち上げて手作業でやっても、やっぱりリソース消費があるので
誰かが言ったように、ノートかなにかに手書き転記するしかないと思う
つうか、そんな人はコンピュータ使っちゃダメだと思う
まるで、経団連会長みたいなんだもの
最近会長室にコンピュータが導入されたらしい
あれこれ、たかが変数や作業用ファイル如きでリソース消費しないように考える時間など無駄中の無駄
なにも、惑星探査衛星の限られたリソースでなんとかするって話じゃないんだから
時間の使い方を間違っている
そんな下らない話題で、ここのスレのリソースも無駄遣い
450デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/02(金) 07:18:03.73ID:bE/8yEKV0 >>446
諦めてないです!まってます!
諦めてないです!まってます!
451デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/02(金) 07:42:30.53ID:bE/8yEKV0 >>448
> peeコマンドに可搬性を持たせられたらいいんだけど、それが問題だよね
こんなんでどう? peeコマンドのシェルスクリプト実装版
シェルスクリプトで実装したから外部コマンドだけじゃなくてシェル関数も呼べるよ
#!/bin/sh
pee() {
( ( (
while IFS= read -r line; do
printf '%s\n' "$line"
printf '%s\n' "$line" >&3
done | "$1" >&4) 3>&1 ) | "$2" ) 4>&1
}
foo() { printf 'foo %s\n' "$(cat -)"; }
bar() { printf 'bar %s\n' "$(cat -)"; }
pee foo bar
> peeコマンドに可搬性を持たせられたらいいんだけど、それが問題だよね
こんなんでどう? peeコマンドのシェルスクリプト実装版
シェルスクリプトで実装したから外部コマンドだけじゃなくてシェル関数も呼べるよ
#!/bin/sh
pee() {
( ( (
while IFS= read -r line; do
printf '%s\n' "$line"
printf '%s\n' "$line" >&3
done | "$1" >&4) 3>&1 ) | "$2" ) 4>&1
}
foo() { printf 'foo %s\n' "$(cat -)"; }
bar() { printf 'bar %s\n' "$(cat -)"; }
pee foo bar
452デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/02(金) 07:59:00.48ID:bE/8yEKV0453デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/02(金) 08:25:40.36ID:bE/8yEKV0 あれ? これでできてね?
最初こんな感じだったからブロックされずに混じって出てくることになったけど
foo() { cat -; }
bar() { cat -; }
こうしたせいで出力がブロックされてる気がする
foo() { printf 'foo %s\n' "$(cat -)"; }
bar() { printf 'bar %s\n' "$(cat -)"; }
最初こんな感じだったからブロックされずに混じって出てくることになったけど
foo() { cat -; }
bar() { cat -; }
こうしたせいで出力がブロックされてる気がする
foo() { printf 'foo %s\n' "$(cat -)"; }
bar() { printf 'bar %s\n' "$(cat -)"; }
454デフォルトの名無しさん (ワッチョイ 5b64-ofXo)
2018/11/02(金) 08:26:07.31ID:tmRne/9W0 >>451
https://www.mankier.com/1/pee
これを読む限り引数は2つだけじゃないから,ちょっと機能不足かもね。
もちろん今回のあなたの目的には合うけど(2通りのパイプがあればそれで十分でしょう?)
ただ,もっと一般的なpee(1)コマンドを作ろうと思うと,
引数の数に応じてまずは雛形を作りそれをevalする,みたいな方法を採る必要があるかも。
https://www.mankier.com/1/pee
これを読む限り引数は2つだけじゃないから,ちょっと機能不足かもね。
もちろん今回のあなたの目的には合うけど(2通りのパイプがあればそれで十分でしょう?)
ただ,もっと一般的なpee(1)コマンドを作ろうと思うと,
引数の数に応じてまずは雛形を作りそれをevalする,みたいな方法を採る必要があるかも。
455デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/02(金) 08:41:23.56ID:bE/8yEKV0456デフォルトの名無しさん (ワッチョイ 9ab3-gRbH)
2018/11/02(金) 09:19:53.88ID:Rb6mIS4M0 foo() { printf 'foo %s\n' "$(tail -n 1 -)"; }
bar() { printf 'bar %s\n' "$(head -n 1 -)"; }
ってして seq 1000 | ./pee.sh としたら実行する度に foo の値
が違ってるな…どちからの子プロセスが実行完了したら while
も終了するから仕方ないんだろうけど。trap '' PIPE ってすると
I/O error になるし
bar() { printf 'bar %s\n' "$(head -n 1 -)"; }
ってして seq 1000 | ./pee.sh としたら実行する度に foo の値
が違ってるな…どちからの子プロセスが実行完了したら while
も終了するから仕方ないんだろうけど。trap '' PIPE ってすると
I/O error になるし
457デフォルトの名無しさん (アウアウウー Sac7-AdN2)
2018/11/02(金) 09:45:49.16ID:0QIYfvOaa458デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/02(金) 09:56:03.14ID:bE/8yEKV0 >>457
正解。組み込みマシンも対象としている
正解。組み込みマシンも対象としている
459デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/02(金) 09:59:54.78ID:bE/8yEKV0 限定的ながら変数で渡すっていうのが出来てしまったので晒す。多分使わない
#!/bin/sh
main() {
index=0
( ( (
while IFS= read -r line; do
index=$((index+1))
dumpvar_and_call "even"
dumpvar_and_call "odd" >&3
done | eval "$(cat -)" >&4) 3>&1 ) | eval "$(cat -)" ) 4>&1
}
dumpvar_and_call() { set; echo "$1"; }
even() {
if [ $((line % 2)) = 0 ]; then
echo "index:$index even $line"
sleep 1
fi
}
odd() {
if [ $((line % 2)) = 1 ]; then
echo "index:$index odd $line"
fi
}
main<<HERE
3
6
7
4
2
8
HERE
#!/bin/sh
main() {
index=0
( ( (
while IFS= read -r line; do
index=$((index+1))
dumpvar_and_call "even"
dumpvar_and_call "odd" >&3
done | eval "$(cat -)" >&4) 3>&1 ) | eval "$(cat -)" ) 4>&1
}
dumpvar_and_call() { set; echo "$1"; }
even() {
if [ $((line % 2)) = 0 ]; then
echo "index:$index even $line"
sleep 1
fi
}
odd() {
if [ $((line % 2)) = 1 ]; then
echo "index:$index odd $line"
fi
}
main<<HERE
3
6
7
4
2
8
HERE
460デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/02(金) 10:03:43.36ID:bE/8yEKV0 なんで使わないかというと、変数をパイプで渡すために
setでシェル変数をダンプして、evalしてるんだが、
bashでは読み取り専用変数があってエラーになるから
setの出力をあれこれフィルタすればできると思うが、
変数の中に改行が入ってる場合とか対応が面倒
bashなら変数名に特定のプリフィックスがついたものだけ
ダンプできたとは思うが他のシェルではそうは行かない
また、行ごとに変数すべてをsetしてevalとか
パフォーマンス悪そうだし。
setでシェル変数をダンプして、evalしてるんだが、
bashでは読み取り専用変数があってエラーになるから
setの出力をあれこれフィルタすればできると思うが、
変数の中に改行が入ってる場合とか対応が面倒
bashなら変数名に特定のプリフィックスがついたものだけ
ダンプできたとは思うが他のシェルではそうは行かない
また、行ごとに変数すべてをsetしてevalとか
パフォーマンス悪そうだし。
461デフォルトの名無しさん (ワッチョイ 038a-Mg3v)
2018/11/02(金) 10:11:28.72ID:GFVwJxnL0 >>457
そんな環境でPosix縛りだとしたら、プロジェクト自体が間違ってる。
そんな環境でPosix縛りだとしたら、プロジェクト自体が間違ってる。
462デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/02(金) 10:16:42.75ID:bE/8yEKV0 > そんな環境でPosix縛りだとしたら
実はPOSIXよりも状況が悪いw
使える機能がPOSIX未満なんだよ。
つまり一部の機能しか実装されていない
実はPOSIXよりも状況が悪いw
使える機能がPOSIX未満なんだよ。
つまり一部の機能しか実装されていない
463デフォルトの名無しさん (ワッチョイ 5b64-74J5)
2018/11/02(金) 11:47:49.42ID:tmRne/9W0 ただの愚痴だけど
POSIXユーティリティにネットワーク通信が含まれてないのってマジで致命的欠陥だと思う。
POSIX原理主義とか,たしかに素晴らしい考えだとは思うけど,ネットワーク通信なくして現在のコンピュータを管理・運用するのは不可能っていうか
もしできてもすごくつまらないでしょう。
POSIXユーティリティにネットワーク通信が含まれてないのってマジで致命的欠陥だと思う。
POSIX原理主義とか,たしかに素晴らしい考えだとは思うけど,ネットワーク通信なくして現在のコンピュータを管理・運用するのは不可能っていうか
もしできてもすごくつまらないでしょう。
464デフォルトの名無しさん (オッペケ Srbb-t4vu)
2018/11/02(金) 12:35:03.14ID:e7WVTJJGr なんでバカって大げさに言いたがるんやw
致命的てwww
致命的てwww
465デフォルトの名無しさん (アウアウウー Sac7-AdN2)
2018/11/02(金) 13:04:44.69ID:0QIYfvOaa >>464
大袈裟に言うなよ
大袈裟に言うなよ
466デフォルトの名無しさん (ワッチョイ c703-gRbH)
2018/11/02(金) 19:08:56.10ID:a5BSTCMR0 なぜか悔しがって意味不明なバカ>>465
どないなっとんねんおまえらwww
どないなっとんねんおまえらwww
467デフォルトの名無しさん (ワッチョイ 5b80-Q1ft)
2018/11/02(金) 23:14:17.14ID:KoqyjIsr0 アンリカバブルな低学歴知恵遅れだからしょうがない
468デフォルトの名無しさん (ワッチョイ 769f-MyS3)
2018/11/03(土) 05:20:12.41ID:vg8hCxXN0 大げさだなあ
469デフォルトの名無しさん (ブーイモ MMba-MC7i)
2018/11/03(土) 06:43:33.72ID:9hr0em1cM 日常的に誇大妄想が激しいんだろ
470デフォルトの名無しさん (ワッチョイ b69f-8AGB)
2018/11/03(土) 17:50:12.58ID:GQ9FpTGT0 MicroPythonを実装した方が良さそう
組込にも対応してるから
組込にも対応してるから
471デフォルトの名無しさん (ワッチョイ bebe-YdG1)
2018/11/04(日) 08:48:54.81ID:S8h/cDRc0 コマンドを作っていてすこし疑問に思ったことなんだけど
--helpオプションで出力される文章って太字や着色なんかで装飾してもいいのかな。
「いいのかな」っていうか、そういうことしてるコマンドをほとんどみかけないので
もしかしたら「--helpオプションで出力される文章は装飾しないように」っていう規約がどこかにあるのかな と思ってさ。
--helpオプションで出力される文章って太字や着色なんかで装飾してもいいのかな。
「いいのかな」っていうか、そういうことしてるコマンドをほとんどみかけないので
もしかしたら「--helpオプションで出力される文章は装飾しないように」っていう規約がどこかにあるのかな と思ってさ。
472デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/04(日) 10:11:04.15ID:Nn4ZdlZB0 >>471
それはいいアイデアだな。
コマンドの出力とは違ってヘルプを入力するプログラムなんて
無いだろうし、カラー専用でもいいくらいなんじゃないか?
そう考えると、manとかinfoもカラーにするべきなんだろうな
今どきカラー使えないとかまず無いし
色ももう16色に拘る必要もないだろう
最低でも256色、24bitカラーも普通に使っていいだろう
それはいいアイデアだな。
コマンドの出力とは違ってヘルプを入力するプログラムなんて
無いだろうし、カラー専用でもいいくらいなんじゃないか?
そう考えると、manとかinfoもカラーにするべきなんだろうな
今どきカラー使えないとかまず無いし
色ももう16色に拘る必要もないだろう
最低でも256色、24bitカラーも普通に使っていいだろう
473デフォルトの名無しさん (ワッチョイ c703-gRbH)
2018/11/04(日) 10:12:08.50ID:iTJ8u5Nd0 >>471
どこかにあったとしその素性のわからん規約におまえが従う必要ないやんアホなん?
どこかにあったとしその素性のわからん規約におまえが従う必要ないやんアホなん?
474デフォルトの名無しさん (アウアウカー Sac3-68Wn)
2018/11/04(日) 11:08:19.99ID:Ok+6IZd3a 慣習は先人の知恵が詰まってる場合もある
自分勝手に振る舞う自称合理的よりよっぽど賢い質問だと思う
AIXはmanが黄色とか太字とかで修飾されてた気がするな
自分勝手に振る舞う自称合理的よりよっぽど賢い質問だと思う
AIXはmanが黄色とか太字とかで修飾されてた気がするな
475デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/04(日) 11:17:07.51ID:Nn4ZdlZB0476デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/04(日) 11:18:53.69ID:Nn4ZdlZB0 ↑ふざけとんのか
BASH(1) General Commands Manual BASH(1)
名名前前
bash - GNU Bourne-Again SHell
書書式式
bash [options] [file]
著著作作権権
Bash is Copyright (C) 1989-2011 by the Free Software Foundation, Inc.
説説明明
bash は、標準入力やファイルから読み込んだコマンドを実行する、 sh 互換のコマンド言語インタプリタです。 bash に
は、Korn シェルや C シェル ksh や csh) の便利な機能も採り入れられています。
bash は IEEE POSIX specification (IEEE Standard 1003.1) の Shell and Utilities に準拠する実装を目指していま
す。 bash はデフォルトで POSIX 準拠に設定することもできます。
オオププシショョンン
BASH(1) General Commands Manual BASH(1)
名名前前
bash - GNU Bourne-Again SHell
書書式式
bash [options] [file]
著著作作権権
Bash is Copyright (C) 1989-2011 by the Free Software Foundation, Inc.
説説明明
bash は、標準入力やファイルから読み込んだコマンドを実行する、 sh 互換のコマンド言語インタプリタです。 bash に
は、Korn シェルや C シェル ksh や csh) の便利な機能も採り入れられています。
bash は IEEE POSIX specification (IEEE Standard 1003.1) の Shell and Utilities に準拠する実装を目指していま
す。 bash はデフォルトで POSIX 準拠に設定することもできます。
オオププシショョンン
477デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/04(日) 11:25:16.76ID:Nn4ZdlZB0478デフォルトの名無しさん (ワッチョイ bebe-YdG1)
2018/11/04(日) 11:56:45.43ID:S8h/cDRc0 >>472
24bitカラーはまだマズいと思う。
多くのXデスクトップ環境で利用されてる端末エミュレータ
(GNOME TerminalとかLXTerminalとか)は
LibVTEベースなのよ。
そしてLibVTEの安定板は24bitカラーには対応してない。
24bitカラーはまだマズいと思う。
多くのXデスクトップ環境で利用されてる端末エミュレータ
(GNOME TerminalとかLXTerminalとか)は
LibVTEベースなのよ。
そしてLibVTEの安定板は24bitカラーには対応してない。
479デフォルトの名無しさん (ワッチョイ 5b80-Q1ft)
2018/11/04(日) 12:58:38.32ID:MKH8Qowh0 そういうのを根本的に対応できるようにするなら
roffが対応する部分になるからな
このスレでやってることは
池沼の塗り絵
roffが対応する部分になるからな
このスレでやってることは
池沼の塗り絵
480デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/04(日) 13:16:39.02ID:Nn4ZdlZB0 >>478
WSLは対応したのに?
WSL その41 - Windowsのコンソールが24bitカラーをサポート・Bashからカラフルな出力が可能に
https://kledgeb.blogspot.com/2016/09/wsl-41-windows24bitbash.html
WSLは対応したのに?
WSL その41 - Windowsのコンソールが24bitカラーをサポート・Bashからカラフルな出力が可能に
https://kledgeb.blogspot.com/2016/09/wsl-41-windows24bitbash.html
481デフォルトの名無しさん (ワッチョイ 5b64-ofXo)
2018/11/04(日) 16:48:40.44ID:V6s3/sLe0 >>480
ま,まぁ? 24bitカラーなんて端末エミュレータの本来の機能じゃないし? (震え声)
ま,まぁ? 24bitカラーなんて端末エミュレータの本来の機能じゃないし? (震え声)
482デフォルトの名無しさん (ワッチョイ 769f-MyS3)
2018/11/04(日) 20:50:30.36ID:eEexL0w40483デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/04(日) 20:58:33.34ID:Nn4ZdlZB0484デフォルトの名無しさん (ワッチョイ 038a-Mg3v)
2018/11/04(日) 23:47:16.17ID:EATzJZ5p0 そして寒い寒いマシン室に押し込められる可哀想な
おじさん達のことは誰も考えてくれないんだよな。
おじさん達のことは誰も考えてくれないんだよな。
485デフォルトの名無しさん (アウアウカー Sac3-68Wn)
2018/11/05(月) 00:50:02.70ID:8mReqxsGa かわいそう
486デフォルトの名無しさん (ワッチョイ ab98-QXT6)
2018/11/05(月) 01:09:40.53ID:LRv++2Wv0 マシン室が
487デフォルトの名無しさん (ワッチョイ 9a1d-MyS3)
2018/11/06(火) 16:17:47.15ID:Vcs848wz0 ... | sort -k 2.2 や
... | uniq -c
のような、パイプ挟んでもオプション使えるシェルスクリプトが書けません
これはどうやればいいのでしょうか?
... | uniq -c
のような、パイプ挟んでもオプション使えるシェルスクリプトが書けません
これはどうやればいいのでしょうか?
488デフォルトの名無しさん (ブーイモ MM7f-4S5W)
2018/11/06(火) 16:19:39.11ID:cucsRggBM 理解不能
489デフォルトの名無しさん (ワッチョイ 9a1d-MyS3)
2018/11/06(火) 16:27:38.20ID:Vcs848wz0 ... | perl -0777 -ne 'print grep(m{ココ1}i, split("(?=ココ2)", $_));'
例えばこのような文脈で動作させていたものを
パイプ移行をシェルスクリプトに書いておき
変数ココ1 ココ2 に渡して処理したいのです
| split_grep.sh ココ1 ココ2
このように動作させたいのですが
$1 $2 ... などを見ても 参照できてなくて困っています
例えばこのような文脈で動作させていたものを
パイプ移行をシェルスクリプトに書いておき
変数ココ1 ココ2 に渡して処理したいのです
| split_grep.sh ココ1 ココ2
このように動作させたいのですが
$1 $2 ... などを見ても 参照できてなくて困っています
490デフォルトの名無しさん (ブーイモ MM7f-4S5W)
2018/11/06(火) 16:53:48.26ID:7Ll1zO1lM ' だからじゃねえか?適切に " を使え。
491デフォルトの名無しさん (ワッチョイ 5b64-ofXo)
2018/11/06(火) 18:09:54.51ID:dlj8br7m0 --helpオプションで出力される手引きの装飾についてだが
less(1)ユーティリティは太字とにしてるね。
less(1)ユーティリティは太字とにしてるね。
492デフォルトの名無しさん (ワッチョイ 9a98-QXT6)
2018/11/06(火) 23:18:09.57ID:9jHKU1L00 シェルスクリプトは20年動くとか言ってるやつがいるけど、
あれ嘘だなぁ。
各シェルの実装は互換性がない部分があるし、
同じシェルでもバージョンが変わると微妙に動きが変わる
POSIXという仕様があってもそれを完全に実装しているとは
限らないしバグもある。
20年前のJavaScriptと同じようなレベルだ。
そのJavaScriptも20年前のものが今でも動いているからねw
今のJavaScriptは本当にどれもで同じように動くようになったけど20年前は大変だった。
どのシェルでも同じように動くシェルスクリプトを書くのは今でも大変だよ
一度互換性テストでもやって準拠度100%を達成を競わせたほうが良いだろう
あれ嘘だなぁ。
各シェルの実装は互換性がない部分があるし、
同じシェルでもバージョンが変わると微妙に動きが変わる
POSIXという仕様があってもそれを完全に実装しているとは
限らないしバグもある。
20年前のJavaScriptと同じようなレベルだ。
そのJavaScriptも20年前のものが今でも動いているからねw
今のJavaScriptは本当にどれもで同じように動くようになったけど20年前は大変だった。
どのシェルでも同じように動くシェルスクリプトを書くのは今でも大変だよ
一度互換性テストでもやって準拠度100%を達成を競わせたほうが良いだろう
493デフォルトの名無しさん (ワッチョイ 5b64-ofXo)
2018/11/07(水) 03:53:59.64ID:XzpCa+6s0 「POSIXという一つの規格」がなぜそんなに強力だと思うのか分からない。
Pythonの公式文書やECMAが規格するJavaScriptと同等の立場でしょう。
もちろん,俺がシェルスクリプトを書くときは,俺がPythonやJavaScriptを書くときと同じく
POSIXという共通規格に従うようにしているが,それは今後20年動かす為じゃない。
Pythonの公式文書やECMAが規格するJavaScriptと同等の立場でしょう。
もちろん,俺がシェルスクリプトを書くときは,俺がPythonやJavaScriptを書くときと同じく
POSIXという共通規格に従うようにしているが,それは今後20年動かす為じゃない。
494デフォルトの名無しさん (オッペケ Srbb-elto)
2018/11/07(水) 09:26:49.70ID:66xysPr5r cronから実行しているシェル(スクリプト)があるんだけど
2重実行されると問題があるので
そのシェルをくるむ親シェルを作って
そこで事前にpkillで実行されているシェルおよびコマンドを無条件にkillしてる
でも最近もともと実行してるシェルを複数回ループで実行したい要件が出てきた
単純に親シェルでループさせることを考えたけど
pkillしてもループで再実行されてkill出来ずに2重実行される問題が出てくる
シェルを親子孫の3階層にして新しく間に挟む子シェルでループさせ
親シェルのpkillではこの子と孫とコマンドをkillするといいと思うんだけど
階層が深くなって嫌だなと思うんだけど何かいい案ない?
ちなみに孫シェルでループってのも考えたけど
cron以外ではループさせたくない場合が多いので
そこには手を加えずシンプルなままとしたいため考慮から外しました
2重実行されると問題があるので
そのシェルをくるむ親シェルを作って
そこで事前にpkillで実行されているシェルおよびコマンドを無条件にkillしてる
でも最近もともと実行してるシェルを複数回ループで実行したい要件が出てきた
単純に親シェルでループさせることを考えたけど
pkillしてもループで再実行されてkill出来ずに2重実行される問題が出てくる
シェルを親子孫の3階層にして新しく間に挟む子シェルでループさせ
親シェルのpkillではこの子と孫とコマンドをkillするといいと思うんだけど
階層が深くなって嫌だなと思うんだけど何かいい案ない?
ちなみに孫シェルでループってのも考えたけど
cron以外ではループさせたくない場合が多いので
そこには手を加えずシンプルなままとしたいため考慮から外しました
495デフォルトの名無しさん (ブーイモ MM26-4S5W)
2018/11/07(水) 09:42:23.92ID:+ld6QnEyM pkillとか野蛮な方法じゃなくて、ちゃんとロックして、ロック取れなければ死ねばいいのでは?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 地方で深刻移動貧困の実態「車のために働いてる」手取り15万円のシンママ月3.2万円が軽自動車の維持費 [七波羅探題★]
- 【芸能】奈良・橿原市に「エドモンド本田」突っ張り銅像…市長「世界中の人に楽しんでもらいたい」 [湛然★]
- 【芸能】ジョン・トラヴォルタの25歳の愛娘、刺激的なルックで雑誌の表紙を飾る [湛然★]
- 【別府ひき逃げ殺人事件】「“おい八田!”と声をかけたら猛スピードで逃げて行った」八田與一容疑者の生々しい目撃情報…1万件超の情報 [ぐれ★]
- ハローワーク職員、求職者になりすます 偽名で面接、就職 [蚤の市★]
- 【TV】藤本万梨乃アナがフジテレビ退社 結婚機に家庭と仕事の両立目指し 「めざましテレビ」「向上委員会」担当 [ぐれ★]
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1816
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap609
- 【U-NEXT】プレミアリーグ総合 ★39
- ハム専 エスコン日韓OB戦
- 巨専】
- とらせん IP
- 【悲報】立憲岡田、民意を批判してしまう。「国民の5割が高市さんの発言に肯定的というのは問題」議員辞職しろよ [519511584]
- 中国の製造業活動11月も縮小、指数49.2に ※高市日本はさらに縮小48台 [399259198]
- 古市憲寿「スタジオでも中国批判して気持ち良くなってる人はいるが高市答弁で日本人は損してる。国益を害した」スタジオ凍りつく★2 [931948549]
- 【悲報】「愛国心って必要か?自分と家族と友達さえ良ければ国なんてどうでもいいじゃん。近所のコンビニの方がまだ大切だわ」7万いいね [257926174]
- 【悲報】自転車乗り、4月から終わる 普通に乗ってても2万3000円くらい罰金を取られる [455031798]
- 🇯🇵日本人の70%「高市さんの責任ある積極財政サイコ~🤯」 インフレ加速+金利上昇+円安進行 を強烈に支持 [485983549]
