!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:BBiLRgnj0248デフォルトの名無しさん (ワッチョイ 7b98-usPd)
2018/10/18(木) 18:50:03.03ID:/ofNkRJS0 >>247
$ dash -c 'a=0; ((a % 5 == 0)) && echo ok'
dash: 1: a: not found
$ dash -c 'a=0; (($a % 5 == 0)) && echo ok'
dash: 1: 0: Permission denied
なぜかって?
その書き方はPOSIX準拠じゃないもの
https://github.com/koalaman/shellcheck/wiki/SC2039#standalone-
$ dash -c 'a=0; ((a % 5 == 0)) && echo ok'
dash: 1: a: not found
$ dash -c 'a=0; (($a % 5 == 0)) && echo ok'
dash: 1: 0: Permission denied
なぜかって?
その書き方はPOSIX準拠じゃないもの
https://github.com/koalaman/shellcheck/wiki/SC2039#standalone-
249デフォルトの名無しさん (ワッチョイ 7b98-usPd)
2018/10/18(木) 18:56:56.93ID:/ofNkRJS0 動かないコード出されて、偉そうにされても
やれやれって言うしか無いわなw
やれやれって言うしか無いわなw
250デフォルトの名無しさん (アウアウカー Safb-nHS7)
2018/10/18(木) 19:33:42.29ID:9i8IzX+1a (( )) ではなく [[ ]] では?
251デフォルトの名無しさん (ワッチョイ 7b98-usPd)
2018/10/18(木) 19:37:12.04ID:/ofNkRJS0 [[ ]] もPOSIX準拠ではない
252デフォルトの名無しさん (アウアウカー Safb-6CEe)
2018/10/18(木) 22:39:25.80ID:3W2GDYvfa またぽっじくすか
253デフォルトの名無しさん (ワッチョイ dbeb-YVHm)
2018/10/19(金) 00:21:19.12ID:0zKHBU8T0254デフォルトの名無しさん (ワッチョイ 26e7-iIDB)
2018/10/19(金) 01:23:10.99ID:JmLVta5V0 cat file.txt | ( head; tail) は最高
255デフォルトの名無しさん (ワッチョイ f398-usPd)
2018/10/20(土) 02:22:05.90ID:V0y1IBp60 >>224
> parsargコマンドみたいなのを再発明したほうが早いかもね
違うもの調べてて、こういうのを見つけた。
見つけたってだけでどんなものかは調べていない
http://zentoo.hatenablog.com/entry/20110708/1310124831
> ちょっとした理由でgit-flow (https://github.com/nvie/gitflow) のソースを
> ちょっとちょっと眺めていたんだけど、内部でコマンドライン引数を
> パースするためにshflagsというツールが使われていたのでメモ。
> parsargコマンドみたいなのを再発明したほうが早いかもね
違うもの調べてて、こういうのを見つけた。
見つけたってだけでどんなものかは調べていない
http://zentoo.hatenablog.com/entry/20110708/1310124831
> ちょっとした理由でgit-flow (https://github.com/nvie/gitflow) のソースを
> ちょっとちょっと眺めていたんだけど、内部でコマンドライン引数を
> パースするためにshflagsというツールが使われていたのでメモ。
256デフォルトの名無しさん (ワッチョイ db8a-2XJB)
2018/10/20(土) 06:26:18.72ID:EzXK/x1W0 >>254
おまえらなんでそんなに猫が好きなん?
おまえらなんでそんなに猫が好きなん?
257デフォルトの名無しさん (ワッチョイ 3bfb-6CEe)
2018/10/20(土) 12:30:19.19ID:o8LOHz9N0 それを疑問に思う人間に説明するのは困難だ
258デフォルトの名無しさん (オッペケ Srb3-iHQf)
2018/10/20(土) 12:37:11.93ID:MzLaXRRvr 猫好きてそんなに言語化しにくい複雑怪奇な感情持っとるんか?
259デフォルトの名無しさん (ワッチョイ 3bfb-6CEe)
2018/10/20(土) 12:43:08.81ID:o8LOHz9N0 例えば女をみて欲情しない人間に、なぜ欲情するのかを説明するのは難しいだろう
言葉を並べるだけなら本能だとか体の特徴なんかを言えるが、共感はされまい
つまりそれを疑問に感じる人間には、その時点ですでに納得させる言葉がないのだ
言葉を並べるだけなら本能だとか体の特徴なんかを言えるが、共感はされまい
つまりそれを疑問に感じる人間には、その時点ですでに納得させる言葉がないのだ
260デフォルトの名無しさん (オッペケ Srb3-iHQf)
2018/10/20(土) 12:48:37.62ID:MzLaXRRvr でもそもそも説明するのが困難なのやろ?
おまえが言ったんやで
おまえが言ったんやで
261デフォルトの名無しさん (ワッチョイ f398-usPd)
2018/10/20(土) 12:55:36.75ID:V0y1IBp60 おい、スレと無関係な話をして荒らすな
262デフォルトの名無しさん (ワッチョイ 3bfb-6CEe)
2018/10/20(土) 12:56:11.89ID:o8LOHz9N0 なぜ説明するのが困難かを説明したつもりだったんだが
263デフォルトの名無しさん (ワッチョイ f398-usPd)
2018/10/20(土) 13:01:22.08ID:V0y1IBp60264デフォルトの名無しさん (ワッチョイ 2aa2-k6PT)
2018/10/20(土) 14:52:07.13ID:ZWcyeiuM0 お前がつまんねーんだよ
265デフォルトの名無しさん (アウアウカー Safb-6CEe)
2018/10/20(土) 14:54:50.53ID:2nu5r9gua なんかレス番飛んだけどなんだこれ
266デフォルトの名無しさん (ワッチョイ db8a-2XJB)
2018/10/20(土) 16:25:12.28ID:EzXK/x1W0267デフォルトの名無しさん (ワッチョイ 2aa2-k6PT)
2018/10/20(土) 17:00:11.18ID:ZWcyeiuM0 なんか遠いレスの番号という意味じゃないの。てか、なんで噛み付いているんだか
268デフォルトの名無しさん (アウアウカー Safb-6CEe)
2018/10/20(土) 17:06:13.46ID:T0X8nuYVa ワッチョイ変わったのになんでNG効いてんだ?と思ったら課題マンだったのか
269デフォルトの名無しさん (ワッチョイ ea98-usPd)
2018/10/21(日) 03:41:54.16ID:dQhyPQp/0 あるパスがディレクトリで書き込み可能かは、[ -d "$path" ] とか [ -w "$path" ] で調べられるし、
所有者が自分自身であるかは-Gや-Oで調べられますが、
自分以外が読み書き不可能であることをチェックするにはどうしたら良いですかね?
所有者が自分自身であるかは-Gや-Oで調べられますが、
自分以外が読み書き不可能であることをチェックするにはどうしたら良いですかね?
270デフォルトの名無しさん (ワッチョイ db8a-2XJB)
2018/10/21(日) 05:19:47.73ID:C+Apg5Hi0 ls
271デフォルトの名無しさん (ワッチョイ ea98-usPd)
2018/10/21(日) 05:42:25.02ID:dQhyPQp/0 やっぱlsしかないですかね。
このフォーマットって仕様化されてるんですよね
このフォーマットって仕様化されてるんですよね
272デフォルトの名無しさん (ワッチョイ aebe-fIkj)
2018/10/21(日) 06:29:17.52ID:9NX69mCX0 >>271
pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html#tag_20_73_10
pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html#tag_20_73_10
273デフォルトの名無しさん (ワッチョイ ea98-usPd)
2018/10/21(日) 06:34:56.07ID:dQhyPQp/0 ありがとう。だがオプション多すぎて読むのだりぃw
なんでだろ?どうもlsって解析する気にならないんだよな
人間向けのフォーマットでコンピュータが解釈するのに向いてない感じがしている
どこまでPOSIXで仕様化されてるのか、どこからが拡張なのか、オプション多すぎて(略
関係ないけど、ふと本棚を見たら
「lsを読まずにプログラマを名乗るな!」という本があったw
そういや買ったっけ(未読)
なんでだろ?どうもlsって解析する気にならないんだよな
人間向けのフォーマットでコンピュータが解釈するのに向いてない感じがしている
どこまでPOSIXで仕様化されてるのか、どこからが拡張なのか、オプション多すぎて(略
関係ないけど、ふと本棚を見たら
「lsを読まずにプログラマを名乗るな!」という本があったw
そういや買ったっけ(未読)
274デフォルトの名無しさん (ワッチョイ 2aa2-k6PT)
2018/10/21(日) 06:42:08.88ID:xQoMnSHc0 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html
STDOUTに記述があるんだからそうじゃね
STDOUTに記述があるんだからそうじゃね
275デフォルトの名無しさん (ワッチョイ 2aa2-k6PT)
2018/10/21(日) 06:42:50.73ID:xQoMnSHc0 あら被りすぎた。すまん
276デフォルトの名無しさん (ワッチョイ 2aa2-k6PT)
2018/10/21(日) 06:45:46.73ID:xQoMnSHc0 >>273
>>272はPOSIXの仕様。>>269,270,271の目的には
If the -l option is specified, the following information shall be written for files other than character special and block special files:
と
If the -l option is specified, the following information shall be written for character special and block special files:
で書いてあるフォーマットだけだけどね
>>272はPOSIXの仕様。>>269,270,271の目的には
If the -l option is specified, the following information shall be written for files other than character special and block special files:
と
If the -l option is specified, the following information shall be written for character special and block special files:
で書いてあるフォーマットだけだけどね
277デフォルトの名無しさん (ワッチョイ ea98-usPd)
2018/10/21(日) 07:33:05.64ID:dQhyPQp/0 そういや、macだとlsで
drwxr-xr-x+ や
drwxr-xr-x@ みたいに
後ろになにかくっついていることがあるな
> Implementations may add other characters to this list to represent other implementation-defined file types.
くっつけても良いってことなのか?
drwxr-xr-x+ や
drwxr-xr-x@ みたいに
後ろになにかくっついていることがあるな
> Implementations may add other characters to this list to represent other implementation-defined file types.
くっつけても良いってことなのか?
278デフォルトの名無しさん (ワッチョイ db8a-2XJB)
2018/10/21(日) 11:22:28.24ID:C+Apg5Hi0 これだからマカーは馬鹿だと言われるんだなあ...
279デフォルトの名無しさん (アウアウウー Sa9f-L0SM)
2018/10/21(日) 20:00:09.31ID:0dWokXAIa stat コマンドの出力解析した方が楽ではないか?
または find コマンドの -perm 利用してチェックして -exec でやらせたいことをやらせる。
または find コマンドの -perm 利用してチェックして -exec でやらせたいことをやらせる。
280デフォルトの名無しさん (ワッチョイ ea98-usPd)
2018/10/21(日) 20:21:13.14ID:dQhyPQp/0281デフォルトの名無しさん (ワッチョイ f364-qPjg)
2018/10/21(日) 22:04:44.47ID:8BH3p2hm0 標準入力の代わりにfileの内容を入力するのに、リダイレクトで
$ <file somecmd
とやる方式ってPOSIXで既定されてるっけ。
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07_01
このへんに書いてそうなんだけど、それっぽい記述がない?
$ <file somecmd
とやる方式ってPOSIXで既定されてるっけ。
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07_01
このへんに書いてそうなんだけど、それっぽい記述がない?
282デフォルトの名無しさん (ワッチョイ 269f-nBLa)
2018/10/22(月) 02:54:50.03ID:HyPH6OEy0 >>280
じゃ、find で。
ファイルのパーミッションに 066 を and した時に 0 になるやつでいいのなら
find $dir -prune ! -perm -40 ! -perm -20 ! -perm -4 ! -perm -2 -exec やらせたいこと \;
のようにすればいいのではないかな。
http://pubs.opengroup.org/onlinepubs/9699919799/ で find コマンド見てみたら -perm はあるようなので。
もし GNU の find コマンド使えるようなら -perm /mode が使えて、これは何れかのビットが立っていれば
真になるので ! -perm /66 の一つで出来ると思う。
じゃ、find で。
ファイルのパーミッションに 066 を and した時に 0 になるやつでいいのなら
find $dir -prune ! -perm -40 ! -perm -20 ! -perm -4 ! -perm -2 -exec やらせたいこと \;
のようにすればいいのではないかな。
http://pubs.opengroup.org/onlinepubs/9699919799/ で find コマンド見てみたら -perm はあるようなので。
もし GNU の find コマンド使えるようなら -perm /mode が使えて、これは何れかのビットが立っていれば
真になるので ! -perm /66 の一つで出来ると思う。
283デフォルトの名無しさん (ワッチョイ db8a-2XJB)
2018/10/22(月) 03:01:30.80ID:1Kkbm3du0 GNUのfind使っていいという条件なら、GNUのlsやstatでいいじゃんw
284名無しさん@そうだ選挙に行こう! Go to vote! (アウアウウー Sa9f-L0SM)
2018/10/22(月) 10:18:21.67ID:8WYgXfgna その辺はご自由に。POSIX縛りがあってもこの場合にfindも使えるってだけの話なので。ls使いたいならそうすればいい。
285デフォルトの名無しさん (ワッチョイ f364-qPjg)
2018/10/22(月) 14:51:33.47ID:JUwIDQm90 >>281
これ分かる方います?
これ分かる方います?
286デフォルトの名無しさん (JP 0H1b-v9b0)
2018/10/22(月) 16:55:54.61ID:9s+yFzz3H >>281
2.1の5で、リダイレクトの処理をしてパラメーターリストから
除去するって書いてあるのと、
6でコマンド名を第0パラメーターとして渡すって書いてるってことは、
先頭もパラメーターリストの一部と解釈できるから、
暗に、先頭にリダイレクトがあってもいいってことを表してるんでは?
2.1の5で、リダイレクトの処理をしてパラメーターリストから
除去するって書いてあるのと、
6でコマンド名を第0パラメーターとして渡すって書いてるってことは、
先頭もパラメーターリストの一部と解釈できるから、
暗に、先頭にリダイレクトがあってもいいってことを表してるんでは?
287デフォルトの名無しさん (ガックシ 06e6-fIkj)
2018/10/22(月) 19:08:52.43ID:WU2zxBnF6288デフォルトの名無しさん (ガックシ 06e6-fIkj)
2018/10/22(月) 19:09:38.93ID:WU2zxBnF6 あ、ワッチョイもIDも違うけど>>285です。
289デフォルトの名無しさん (ワッチョイ ea98-Pr2h)
2018/10/22(月) 21:35:03.82ID:oF7wf0Ce0 >>118
それはオブジェクト指向の話じゃない
C++の話だ
そもそもテンプレートやジェネリックは、型を明確にすることでバグを少なくしたり
速度を速くするためのもので、オブジェクト指向における問題点を解決するための追加機能
テンプレートやジェネリックを使うことでオブジェクト指向が不要になるのではなく
オブジェクト指向と組み合わせて使うことで問題点が改善される
テンプレートはオブジェクト指向と組み合わせずに使えたと思うが、
テンプレートの殆ど(ジェネリックは全て)はオブジェクト指向なしに使うことはできない
それはオブジェクト指向の話じゃない
C++の話だ
そもそもテンプレートやジェネリックは、型を明確にすることでバグを少なくしたり
速度を速くするためのもので、オブジェクト指向における問題点を解決するための追加機能
テンプレートやジェネリックを使うことでオブジェクト指向が不要になるのではなく
オブジェクト指向と組み合わせて使うことで問題点が改善される
テンプレートはオブジェクト指向と組み合わせずに使えたと思うが、
テンプレートの殆ど(ジェネリックは全て)はオブジェクト指向なしに使うことはできない
290デフォルトの名無しさん (ワッチョイ ea98-usPd)
2018/10/22(月) 21:47:50.25ID:oF7wf0Ce0 あ、書き込まれてないと思ったら書き込む場所間違えてたのかw
291デフォルトの名無しさん (ワッチョイ ea98-usPd)
2018/10/22(月) 23:23:26.53ID:oF7wf0Ce0292デフォルトの名無しさん (アウアウウー Sa9f-L0SM)
2018/10/23(火) 13:27:19.16ID:QwHjyvjPa シェルというか tar コマンドの問題なんだけど、tar tvf でアーカイブに入っているファイルのタイムスタンプを秒単位まで出す方法ある?
Linux で GNU tar のmanページ見た感じではなさそうなんだけど、やはり自作するしかないなかな。
Linux で GNU tar のmanページ見た感じではなさそうなんだけど、やはり自作するしかないなかな。
293デフォルトの名無しさん (ワッチョイ 2a23-8h48)
2018/10/23(火) 14:12:45.60ID:mYtscksw0 >>292
tar --full-time ...
tar --full-time ...
294デフォルトの名無しさん (アウアウウー Sa9f-L0SM)
2018/10/23(火) 14:38:56.39ID:QwHjyvjPa >>293
おお!ありがとう。新しい GNU tar にあるね。
最初CentOS6で試しててわからなかった。これは GNU tar 1.23 だ。
CentOS7は GNU tar 1.26 になっててこちらでは出来るしmanページにも書いてあった。
おお!ありがとう。新しい GNU tar にあるね。
最初CentOS6で試しててわからなかった。これは GNU tar 1.23 だ。
CentOS7は GNU tar 1.26 になっててこちらでは出来るしmanページにも書いてあった。
295デフォルトの名無しさん (ワッチョイ f364-qPjg)
2018/10/23(火) 15:22:22.26ID:cKF5Z2eR0 CentOS 6はそろそろサポート切れるんじゃないかしら
余計なお世話だが移行したほうがいいんでは
余計なお世話だが移行したほうがいいんでは
296デフォルトの名無しさん (アウアウウー Sa9f-L0SM)
2018/10/23(火) 15:35:42.08ID:QwHjyvjPa >>295
するする。仕事でRHEL6のサーバ使っててそれの一部をテストする時に使ってただけなので。
するする。仕事でRHEL6のサーバ使っててそれの一部をテストする時に使ってただけなので。
297デフォルトの名無しさん (ワッチョイ 7b32-JHIh)
2018/10/25(木) 13:45:54.07ID:7aRL1OkY0 すごい低レベルな質問で申し訳ないんだけど、
win用のGit-bashで.shファイルダブルクリックしたときに
DOS窓出さないで実行するのってどうすればいい?
win用のGit-bashで.shファイルダブルクリックしたときに
DOS窓出さないで実行するのってどうすればいい?
298デフォルトの名無しさん (アウアウウー Sa5d-hDoO)
2018/10/25(木) 14:43:08.46ID:hw/Q19JUa >>297
それもはやシェルかどうか関係なくてWindows固有の問題だと思うが、エクスプローラでそのファイル右クリックしてプロパティ出したらそんな感じの設定できるようになってない?
最小化した状態で実行するとか、そんなやつ。
それもはやシェルかどうか関係なくてWindows固有の問題だと思うが、エクスプローラでそのファイル右クリックしてプロパティ出したらそんな感じの設定できるようになってない?
最小化した状態で実行するとか、そんなやつ。
299デフォルトの名無しさん (アウアウウー Sa5d-hDoO)
2018/10/25(木) 14:51:54.06ID:hw/Q19JUa こうだ。
まずショートカット作り、そのショートカットのプロパティ出すと実行時の大きさを指定できる所があって、そこを最小化にすると実行時にタスクバーにアイコン出ているだけになる。
まずショートカット作り、そのショートカットのプロパティ出すと実行時の大きさを指定できる所があって、そこを最小化にすると実行時にタスクバーにアイコン出ているだけになる。
300デフォルトの名無しさん (ワッチョイ 7b32-JHIh)
2018/10/25(木) 16:15:39.89ID:7aRL1OkY0301デフォルトの名無しさん (ワッチョイ 9764-Ed1r)
2018/10/26(金) 22:15:40.17ID:ScQN6FWl0 ファイルや標準出力の行数がある数値より大きいことをできるだけ高速に確かめるにはどうすればいいだろう
最も単純で最もUNIXっぽいのは
$ test $(<file.txt wc -l) -gt $num
としてその真偽を見ることだけど
$ test $( (yes | head -n 3000000000000000000) | wc -l) -lt 300
こういうのを実行して貰えれば分かると思うがかなり時間が掛かる
俺の使ってる計算機はそこそこ良い性能(Intel Xeon x2/32GiB RAMなのだが)
それでも実行に1分強掛かった。
しかしこれは無駄だ。なぜなら結局比較する対象は300なのだから、「300行以上ある」ことが分かればいい。
なにか案ありませんかね。
思ったのはsed -n -e '300p'とかでその失敗判定を見るとかだが,これはsedコマンドの失敗の要因が他にもあるので
ちょっと不安定かなと。
最も単純で最もUNIXっぽいのは
$ test $(<file.txt wc -l) -gt $num
としてその真偽を見ることだけど
$ test $( (yes | head -n 3000000000000000000) | wc -l) -lt 300
こういうのを実行して貰えれば分かると思うがかなり時間が掛かる
俺の使ってる計算機はそこそこ良い性能(Intel Xeon x2/32GiB RAMなのだが)
それでも実行に1分強掛かった。
しかしこれは無駄だ。なぜなら結局比較する対象は300なのだから、「300行以上ある」ことが分かればいい。
なにか案ありませんかね。
思ったのはsed -n -e '300p'とかでその失敗判定を見るとかだが,これはsedコマンドの失敗の要因が他にもあるので
ちょっと不安定かなと。
302デフォルトの名無しさん (ワッチョイ 1d80-SUE8)
2018/10/26(金) 23:12:31.32ID:7cGNdWT70 cで指定行読むコマンドを作ればいい
面倒なこといちいち考える必要がそもそもない
面倒なこといちいち考える必要がそもそもない
303デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/26(金) 23:41:06.71ID:E+2rE/Ml0 >>301
headで300行読み込めば?
headで300行読み込めば?
304デフォルトの名無しさん (ワッチョイ 5b5b-F79V)
2018/10/27(土) 00:04:40.31ID:GbJLfo150 sed -n 300pでもええんか?
305デフォルトの名無しさん (ワッチョイ 9764-Ed1r)
2018/10/27(土) 00:13:24.42ID:BbyQQXdF0306デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/27(土) 00:29:51.71ID:4RrrP6U60307デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/27(土) 00:37:07.31ID:4RrrP6U60 あれ?できなかったか?
308デフォルトの名無しさん (ワッチョイ 9764-Ed1r)
2018/10/27(土) 01:15:41.17ID:BbyQQXdF0 GNU headだとどうか知らないが
POSIX headだと無理
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/head.html
POSIX headだと無理
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/head.html
309デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/27(土) 01:23:00.95ID:4RrrP6U60 シェルスクリプトでループで回しながら数えるのと
headで300行とってきて、wcで300行数えるのってどっちが速いんだろうかね
やればすぐわかるけど、やる気起きないなぁw
headで300行とってきて、wcで300行数えるのってどっちが速いんだろうかね
やればすぐわかるけど、やる気起きないなぁw
310デフォルトの名無しさん (ワッチョイ 5b9f-3knh)
2018/10/27(土) 04:24:55.28ID:QwPOuwmq0 >>309
シェルスクリプトだとインタープリタの言語みたいな動きになるので遅そうなイメージはあるな。但しうまいこと内部で最適化されれば速くなるかもね。
シェルスクリプトだとインタープリタの言語みたいな動きになるので遅そうなイメージはあるな。但しうまいこと内部で最適化されれば速くなるかもね。
311デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/27(土) 08:30:31.93ID:4RrrP6U60 >>310
いうてもループとカウントと条件分岐だけだからなぁ
内部的にはインタプリタ解釈後の状態になってるだろうし
そこでCPUは食わない気がする
でもheadでとってきてwcでカウントの部分は並列で実行できるわけで
マルチコアなら当然のことながら、シングルコアでもファイルから読み取りの方が
遅いからwcで待たされることはなさそう
どちらが速いかは微妙な所だなw
いうてもループとカウントと条件分岐だけだからなぁ
内部的にはインタプリタ解釈後の状態になってるだろうし
そこでCPUは食わない気がする
でもheadでとってきてwcでカウントの部分は並列で実行できるわけで
マルチコアなら当然のことながら、シングルコアでもファイルから読み取りの方が
遅いからwcで待たされることはなさそう
どちらが速いかは微妙な所だなw
312デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
2018/10/27(土) 09:05:32.40ID:94jXB05x0 awkでいいんじゃないの
313デフォルトの名無しさん (ワッチョイ 1d80-SUE8)
2018/10/27(土) 09:08:24.86ID:S4VvuAVS0 ファイルの先頭からLFの数を数えるだけのことを
ああでもこうでもないと
いちいち考えないといけないオツムのデキを疑うわ。。。
ああでもこうでもないと
いちいち考えないといけないオツムのデキを疑うわ。。。
314デフォルトの名無しさん (オッペケ Sref-9p2Q)
2018/10/27(土) 09:14:33.78ID:EI3TCK5cr ループってreadのループ?
catからパイプしてwhileのreadループってどうなんだっけ
昔作ったシェルでcatしてたファイルを処理中に書き換えたけど
実行されてる処理では書き換える前の内容で処理されてたみたいだから
どこかメモリに展開されてるんじゃ
catからのパイプでプロセスが終わってるからか?
でもリダイレクトやヒアドキュメントでも同じじゃないの?
catからパイプしてwhileのreadループってどうなんだっけ
昔作ったシェルでcatしてたファイルを処理中に書き換えたけど
実行されてる処理では書き換える前の内容で処理されてたみたいだから
どこかメモリに展開されてるんじゃ
catからのパイプでプロセスが終わってるからか?
でもリダイレクトやヒアドキュメントでも同じじゃないの?
315デフォルトの名無しさん (ワッチョイ 1d80-SUE8)
2018/10/27(土) 09:24:18.83ID:S4VvuAVS0 低学歴知恵遅れの思考形態、世界では
すでに用意されているコマンドを組み合わせてシェルスクリプトを書くことが
シェルスクリプトを書くことになるという決まりがあるのが
このスレみてると分かる
すでに用意されているコマンドを組み合わせてシェルスクリプトを書くことが
シェルスクリプトを書くことになるという決まりがあるのが
このスレみてると分かる
316デフォルトの名無しさん (ワッチョイ c3e7-t6cX)
2018/10/27(土) 09:27:18.91ID:7MihieRw0 そういうのは上流でなんとかせい
317デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
2018/10/27(土) 09:36:35.55ID:94jXB05x0 >>314
単にバッファに入っていただけとか。カーネルに設定できるバッファサイズなバッファなんぞもしくはcatプログラムのバッファ(の方が小さいだろう、たぶん)
もしくは上書きが上書きではなくて削除して新規ファイルに保存とかの場合とか(削除してもどこぞでオープンしていたらクローズされるまでは元のはそのまま残る)、か、OSが他でオープンされていたら上書きでも同じように別に保存してるとか
単にバッファに入っていただけとか。カーネルに設定できるバッファサイズなバッファなんぞもしくはcatプログラムのバッファ(の方が小さいだろう、たぶん)
もしくは上書きが上書きではなくて削除して新規ファイルに保存とかの場合とか(削除してもどこぞでオープンしていたらクローズされるまでは元のはそのまま残る)、か、OSが他でオープンされていたら上書きでも同じように別に保存してるとか
318デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/27(土) 10:00:05.77ID:4RrrP6U60 >>313
考えてるのはファイルの先頭からLFの数を数える
「効率がいい方法(コマンド)は何か」だよ
LFの数を数えることなんてわかりきったことは考えてない
それを実現する方法を考えてる
まったくキミは思慮が足りないなw
考えてるのはファイルの先頭からLFの数を数える
「効率がいい方法(コマンド)は何か」だよ
LFの数を数えることなんてわかりきったことは考えてない
それを実現する方法を考えてる
まったくキミは思慮が足りないなw
319デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/27(土) 10:02:52.71ID:4RrrP6U60320デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/27(土) 10:06:05.12ID:4RrrP6U60 >>312
awkプログラマ、シェルショッカーさんこんちには(笑)
awkプログラマ、シェルショッカーさんこんちには(笑)
321デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
2018/10/27(土) 10:32:12.85ID:94jXB05x0 何を噛み付いているのだか。よほど気に食わないことがあるらしいなっw
322デフォルトの名無しさん (アウアウカー Sad3-x45d)
2018/10/27(土) 10:38:33.23ID:5CI9IsZua このガキのやり取りもシェルスクリプトスレの日常になりつつあるな
323デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/27(土) 10:42:58.86ID:4RrrP6U60 この殺伐さがいいんだよ
324デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
2018/10/27(土) 10:49:54.15ID:94jXB05x0 雑談すんなとか言ってなかったかなあ、だれかはw
325デフォルトの名無しさん (ワッチョイ 1d80-SUE8)
2018/10/27(土) 11:01:01.29ID:S4VvuAVS0 低学歴知恵遅れのしゃべり場
326デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
2018/10/27(土) 11:02:18.35ID:94jXB05x0 自己紹介そのものじゃないのww
327デフォルトの名無しさん (ワッチョイ 9764-g60c)
2018/10/27(土) 15:16:56.95ID:BbyQQXdF0 >>305
まあこれで今のところ上手くいってるのでいいです。
まあこれで今のところ上手くいってるのでいいです。
328デフォルトの名無しさん (ワッチョイ 9764-Ed1r)
2018/10/28(日) 00:51:41.26ID:5IpH1DwA0 「シェルスクリプト」を省略するときなんて呼べばいいのかな。
“ss”だと他の用例が多すぎてややこしいし。
“shscp”とか?
“ss”だと他の用例が多すぎてややこしいし。
“shscp”とか?
329デフォルトの名無しさん (アウアウカー Sad3-x45d)
2018/10/28(日) 01:46:36.58ID:0ZKwpNcRa sh
330デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/28(日) 02:04:05.48ID:PnJQ4LJT0 SHと書くとスーパエッチみたいだな
331デフォルトの名無しさん (ワッチョイ df03-WuzW)
2018/10/28(日) 06:57:04.86ID:xmv6f/Y+0 そもそもシェルでええのにわざわざシェルスクリプトって言いたがる新参者達w
332デフォルトの名無しさん (ドコグロ MMcf-YOnW)
2018/10/28(日) 07:36:49.77ID:fdB1NucVM そういうくだらないことにしか突っ込めない老害w
333デフォルトの名無しさん (ワッチョイ 5b5b-KO6q)
2018/10/28(日) 07:49:18.94ID:JDWqlC9k0 >>331
シェルでググれ&テンプレくらい嫁
シェルでググれ&テンプレくらい嫁
334デフォルトの名無しさん (ワッチョイ df03-WuzW)
2018/10/28(日) 09:10:44.72ID:xmv6f/Y+0 >>333
おまえがググれよおこちゃまw
おまえがググれよおこちゃまw
335デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/28(日) 09:26:48.32ID:PnJQ4LJT0 こんな感じに script1.sh が script2.sh を呼び出してる状態でさ、
script1.sh
└ script2.sh
CTRL+Cを押した時、script2.shは止めて、script1.shは
止めないってできるのかなぁ?
シグナルって、伝搬というか、上から下へ もしくは 下から上へ
流れていくものなん?
script1.sh
└ script2.sh
CTRL+Cを押した時、script2.shは止めて、script1.shは
止めないってできるのかなぁ?
シグナルって、伝搬というか、上から下へ もしくは 下から上へ
流れていくものなん?
336デフォルトの名無しさん (ワッチョイ bb80-+toU)
2018/10/28(日) 10:03:53.12ID:oCsOt6/L0 trapかけろ
337デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/28(日) 10:12:32.68ID:PnJQ4LJT0 ああ、いやトラップはかけてるんだよ
script1.sh でINTを無効にすると
script2.sh は止まらなくなる
script1.sh でINTを無効にすると
script2.sh は止まらなくなる
338デフォルトの名無しさん (ブーイモ MM5b-F79V)
2018/10/28(日) 11:08:09.88ID:YiTUMI+KM >>334
老害と思いきや素人か
老害と思いきや素人か
339デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
2018/10/28(日) 11:18:09.59ID:gJfQRhUl0 >>335,337
目的がどこまでどゆのなのかわからんけど、script2.shのシグナルハンドラでkill -SIGTERM $PPIDすればそんな動作にはなるな
目的がどこまでどゆのなのかわからんけど、script2.shのシグナルハンドラでkill -SIGTERM $PPIDすればそんな動作にはなるな
340デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
2018/10/28(日) 11:32:07.64ID:gJfQRhUl0 ああ、script2.shを止めるのか
そんなんだったらscript2.shのシグナルハンドラでexitすればいいんじゃないの??また変な縛りとか拘りとかは知らん
そんなんだったらscript2.shのシグナルハンドラでexitすればいいんじゃないの??また変な縛りとか拘りとかは知らん
341デフォルトの名無しさん (ワッチョイ ab5d-DAZ3)
2018/10/28(日) 11:40:05.37ID:uhvIO3T60 script1.sh だけ動作を変えたいということなら
trap true INT
でいいように思うんだが…
trap true INT
でいいように思うんだが…
342デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
2018/10/28(日) 11:47:47.85ID:gJfQRhUl0 script2.shでそのへんの制御とかしたくなく、script1.shだけでならscript1.shで trap SIGINTすればいいだけっぽいな。無効じゃなくなにもしないシグナルハンドラで
script2.shの時だけでならその前後でNOPのシグナルハンドラ設定通常のシグナルハンドラに戻すとかか
>>341 被ったけど、書いたので被り被りで
script2.shの時だけでならその前後でNOPのシグナルハンドラ設定通常のシグナルハンドラに戻すとかか
>>341 被ったけど、書いたので被り被りで
343デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/28(日) 17:27:21.50ID:XoYPKH7l0 勘違いしてた。違う所が原因だった
単純にscript2.shを起動してるのではなくて
script2.sh | filter みたいにパイプ使っていて、
CTRL+C押したときにscript2.shが出力するメッセージを
script1.shで受け取れないって問題だった
単純にscript2.shを起動してるのではなくて
script2.sh | filter みたいにパイプ使っていて、
CTRL+C押したときにscript2.shが出力するメッセージを
script1.shで受け取れないって問題だった
344デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
2018/10/28(日) 17:58:26.84ID:gJfQRhUl0 どのタイミングでの出力が出ない、出したいのかわからんな。CTRL+C押した瞬間ギリのか??としか思えないが。filterがなんなのか知らんけど、script1.shでtrapでもscript2.shでの出力が全くでないことなないだろう、当然
script2.shでtrapしてexitすればギリ近くのまで出るんじゃないの。script2.shで実際に出力しているコマンド(プロセス)にもよるだろうけど
script2.shでtrapしてexitすればギリ近くのまで出るんじゃないの。script2.shで実際に出力しているコマンド(プロセス)にもよるだろうけど
345デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
2018/10/28(日) 18:40:23.99ID:gJfQRhUl0 ああ、trapの対象はパイプチェイン(?)の最後のヤツ&それがシェルでなければなのか?script2.shに飛ぶことはないのね。その最後のでexitすればだなすればかな
script2.sh | cat
script2.sh | sh -c "trap 'exit 0';cat"
のような変態なw それもシェル種類依存かな。あとはバッファをflushすればよりなんとかなりそうかなあ(できるのであれば)
そもそもCTRL+Cなんだからそんなギリを気にすんなってとこか
script2.sh | cat
script2.sh | sh -c "trap 'exit 0';cat"
のような変態なw それもシェル種類依存かな。あとはバッファをflushすればよりなんとかなりそうかなあ(できるのであれば)
そもそもCTRL+Cなんだからそんなギリを気にすんなってとこか
346デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
2018/10/28(日) 18:42:22.28ID:gJfQRhUl0 SIGINT抜けてた
347デフォルトの名無しさん (ワッチョイ 5b98-o90R)
2018/10/28(日) 19:05:49.36ID:XoYPKH7l0 >>344
最終的にやりたいことは
script1.sh ・・・ サブプロセスの標準出力・標準エラー出力を総てキャプチャしたい
script2.sh ・・・ 標準出力・標準エラー出力を行い、CTRL+Cを押されたら(trapして)
CTRL+Cが押されたと標準エラー出力に出力したい
ってことなんだよね
> そもそもCTRL+Cなんだからそんなギリを気にすんなってとこか
そういうことだし、諦めて一つのスクリプトにしてやりたいことは
解決できたのでもう深追いする気はなくなってる
あと関係ないけど、SIGINTってPOSIXじゃないみたいだなw
INTを使えってshellcheckに怒られた。みんな SIG SIG 言ってるのに
最終的にやりたいことは
script1.sh ・・・ サブプロセスの標準出力・標準エラー出力を総てキャプチャしたい
script2.sh ・・・ 標準出力・標準エラー出力を行い、CTRL+Cを押されたら(trapして)
CTRL+Cが押されたと標準エラー出力に出力したい
ってことなんだよね
> そもそもCTRL+Cなんだからそんなギリを気にすんなってとこか
そういうことだし、諦めて一つのスクリプトにしてやりたいことは
解決できたのでもう深追いする気はなくなってる
あと関係ないけど、SIGINTってPOSIXじゃないみたいだなw
INTを使えってshellcheckに怒られた。みんな SIG SIG 言ってるのに
348デフォルトの名無しさん (ワッチョイ 5b76-MKt5)
2018/10/28(日) 20:03:04.22ID:gJfQRhUl0 なにその勝手にやる気なくすなよw ほんとに身勝手だな、いつも通り
SIGINTはPOSIXだからな(なぞ)。そっち寄りのの人は普通に使ってしまうんじゃね。てか、んなの本題に関係ないだろうに、そんなこと言いたいのはわかるけどさ(なぞ)
SIGINTはPOSIXだからな(なぞ)。そっち寄りのの人は普通に使ってしまうんじゃね。てか、んなの本題に関係ないだろうに、そんなこと言いたいのはわかるけどさ(なぞ)
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【窪田順生氏】「高市政権人気の裏には多数の“弱者感を抱えた男”の存在がある」弱者感を抱えた男は人知れずマイルド右翼に… [おっさん友の会★]
- 【調査】クレジットカード、1人何枚持つのが「平均的」?★3 [ひぃぃ★]
- 【サッカー】カズ・三浦知良 来季も現役続行を明言! 来年2月に59歳 「12月から来季に向けての自主トレを予定してます」 [冬月記者★]
- 【テレビ】池上彰氏 報道の自由度が高い国の特徴「どんどん政府を批判する。政治家は受け入れる」 一方独裁国家は… [冬月記者★]
- 「ヘイトスピーチをやめろ」 各地の「移民反対デモ」に抗議活動 [蚤の市★]
- 【国防】防空ミサイル(中SAM) 輸出検討へ 政府、フィリピンと非公式協議 [シャチ★]
- 【U-NEXT】プレミアリーグ総合 ★39
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1814
- とらせん IP
- 巨専】
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap607
- こいせん 全レス転載禁止
- 公務員(非正規)、市民が納めた税金40万円を着服してしまう。これ誰が悪い? [237216734]
- 高市早苗さん、超人気アニメキャラターにそっくりと話題に⇦なぜかネトウヨイライラw [271912485]
- まったり進行おじゃる丸待機ハウス🏡
- フィフィ「「歌唱強制中断」騒動、この時期に中国でライブ公演しようとするアーティストの方にも問題があるのでは?」 [377482965]
- 無観客フル公演の浜崎あゆみさん、中国でとんでもない尊敬を集めてしまう… これもうこの国の外交官だろ… [452836546]
- ムラムラしてるのでしこれる画像ください(女)
