- 1 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 17:54:23.25 .net]
- シェルスクリプトの総合スレです。
□お約束 ・特記なき場合はBourne Shell(/bin/sh)もしくはPOSIX準拠の互換シェルがデフォルトです。 bash/zsh/ksh/ash/dash/yash/poshなどの専用機能に依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。 FreeBSDユーザは/bin/shの正体がashなので注意。 ・POSIXについてのリンクは https://en.wikipedia.org/wiki/POSIX にまとめられています 最新の仕様はこちらへ pubs.opengroup.org/onlinepubs/9699919799/ (左上の「Shell & Utilities」 から参照することができます。) ・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に逃げずにシェルスクリプトで処理するのが頭のいいやり方。 質問に対して問題が間違ってるといちゃもんをつけるのもやめましょう 前スレ シェルスクリプト総合 その26 https://mevius.5ch.net/test/read.cgi/unix/1489979246/
- 872 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:12:02.88 .net]
- \; より + かな。forkの遅いCygwinでは特に。
- 873 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:21:14.22 .net]
- 最後以外の改行を削除する単純で可搬な方法を探しています。
私が現在使っている方法は cat <<. | tr -d '\n' | printf '%s\n' "$(cat)" a bbb cc . です。これは可搬性は抜群ですが、冗長すぎると感じています。 できれば一つのコマンド(sedとか?)で済ませたいです。よろしくお願いします。
- 874 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:32:09.95 .net]
- awkで
- 875 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:34:23.01 .net]
- フォルダっつーかディレクトリ
- 876 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:37:25.99 .net]
- 同じだろ
- 877 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 21:40:52.56 .net]
- >>841
sed ':l;N;s/\n//;bl' とかかな。// を /,/ にすると、1行CSVに出来る。
- 878 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 22:22:07.40 .net]
- >>845
ありがとうございます! すごいですね……。:lってラベル付けでしたっけ。
- 879 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/04(水) 23:00:04.93 .net]
- >>841
cat <<. | { tr -d '\n'; echo; } a bbb cc .
- 880 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 09:36:25.04 .net]
- Mac付属のsedじゃうまく行かなかった、ってお呼びじゃないか
最近のBSD sedはどうかわからないけど
- 881 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 10:23:41.12 .net]
- >>848
え? そうなの? OS Xを持ってないので知らんが Busyboxでも行けるくらいの可搬性はあるぜ? 全部POSIXで規定されてる命令だし。
- 882 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 12:53:17.75 .net]
- macOSだけでなくBSDでだめっぽい。BSDでだめというか、GNU sedでなら動くか
- 883 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 14:18:26.92 .net]
- 主にパターンスペースに対して処理した直後にどうするってとこの違いかな。他ではBSDでもmacOSとOpenBSDでは行を処理しなかった場合どうするがちょっと動作が違ったり、いろいろ鬼門だなsedは
sed '$!{H;d;};${H;g;s/\n//g;}' で、いちおう、sedもGNU sedものようだけど、ゴテっとはしてんな
- 884 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 14:50:09.34 .net]
- >>845も結局改行を削除しているだけ&最後の改行はsedの勝手に付けるだけなので、>>847の方がシンプルでこっちの方がって感じだな
- 885 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 15:36:04.46 .net]
- >>845のMacやBSD向け変種でけた
sed -e :l -e 'N;s/\n//;$p;bl'
- 886 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 15:51:48.45 .net]
- おおっ
ラベルを別にすれば/しなきゃなのか $はそこに入れるのか、なるほど GNU sedではそれだと.
- 887 名前:..オプションで変えられるかな
くせが強いw [] - [ここ壊れてます]
- 888 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 17:34:11.18 .net]
- 教訓。移植性を重視するならsedで変なことするな。普通の正規表現だけ使え
- 889 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 18:25:50.29 .net]
- 昔はもっと酷かったんだろうな #移植性
sedだけじゃなくてgrepとかも。
- 890 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 18:33:28.39 .net]
- >>856
昔は一つしかなかったから移植性よかったよ。 GNUが台無しにした。
- 891 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 18:41:45.18 .net]
- ぐぬぅ
- 892 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 22:10:39.00 .net]
- sed で可搬性を考えると、セミコロンで分ける方法はちょっとあやしいから、
愚直に -e で分けるしか無いのかも知れない、短く書けないけどw それはさておき、sed の「無限ループに N を入れる」って、趣があると思うんだよね。 C で「ファイルを while の条件文で fgets() が EOF になるまで読み込む処理」に近いというか。
- 893 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 22:32:39.96 .net]
- >>855
>普通の正規表現だけ使え というより、一行単位サイクルで処理しろかな
- 894 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/05(木) 23:00:24.55 .net]
- >>859
溜めに溜めて溜め込んでってイメージしかないなw そのwhile〜fgets〜で言うなら、中にreallocでどんどこ的な 実際どうなんだろと65Mのファイルで「ちょっと」試したら、使用メモリは増えない(??)けど終わらんぞw
- 895 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/06(金) 00:57:10.67 .net]
- bashのプロセス置換なんですけど、最初のプロセス置換が/dev/fd/63に固定(?)されているのはなにか理由があるんですかね。
bash-4.4$ eval echo $(yes '<(echo) ' | head -n 63) とやったら/dev/fd/63からデクリメントされていって/dev/fd/5→/dev/fd/3→/dev/fd/64 という謎の変化を経てインクリメントされていくという……。 これ仕様ですかね。
- 896 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 16:45:13.41 .net]
- 仕様です
63は昔は大きい数字だったのですが 最近は小さくなってしまった
- 897 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 19:05:22.41 .net]
- 数千行のCSVの値を一個一個指定の条件に沿っているかチェックするにはシェルスクリプトでも出来ますかね?
参考書教えて頂けたら嬉しいです。 それともこういうのは他のスクリプトの方が適してたりしますか? perlも使える環境ではあります。
- 898 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 19:24:54.18 .net]
- >>864
そのチェックが他の行の参照を含まなくて、shellでできるかという質問にawkやsedも含まれているのなら、できる というか、excelでやったりしないし、最近はpythonでやることが多い
- 899 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 20:21:55.89 .net]
- 指定の条件によるな。CSVの項目も数値や文字列だけだったらシェルスクリプトだけでもできるだろう
- 900 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 20:52:55.66 .net]
- ああ、文字列の中のフィールドセパレータ(,)をフィールドセパレータとして除外というのはしないか。awkも同じかな。やってできないこともないだろうけどめんどくさいな
perlはcsv処理するモジュールを入れてだっけ、pythonは最初から入っているよな
- 901 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 21:04:50.61 .net]
- それ以前にCSVのフォーマットによると思う
改行とかカンマとかダブルクォーテーションを含むとかをきちんとやりだすとシェルだけでもできるだろうけどやりたくない
- 902 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 23:07:51.61 .net]
- またCSV嵐が来てんのか
- 903 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 23:12:15.86 .net]
- カンマ入っている場合には "" もしくは '' で囲わなければならないから、それはシェルスクリプトにとっても都合がいい、
IFS=',' fields=($raw) で簡単にと思ったがそう甘くはなかった。最近流行りのevalでなんとかだとしても、$とかまた別の問題があるしなあ
- 904 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 23:14:30.65 .net]
- >>869
別にあれとは違うだろうにw 単にCSVだからって拒
- 905 名前:否反応示しすぎ []
- [ここ壊れてます]
- 906 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 23:47:30.31 .net]
- 皆さんお答えありがとうございます。
出来るけど面倒だという感じですね。 PHP使いたいけど仕様上ダメみたいなんですよね。。。 後にメンテナンスが面倒くさそう
- 907 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/07(土) 23:50:19.59 .net]
- >>867
残念ながらpythonは入ってなかったです。DBサーバーなんで
- 908 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/08(日) 00:37:11.05 .net]
- >>873
perlで高機能な(?)Text::CSVを入れればだけど、それすらなら、 t2aki.doncha.net/?id=1403586022 なんぞの数行のをコピペってでもかな。後はperlスレだな
- 909 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/09(月) 08:36:49.76 .net]
- >>869
いいえ、また "お前" が来てるんですよ
- 910 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/09(月) 09:05:14.05 .net]
- >>872
上とかけあってperl/python/rubyのどれかを入れさせれもらった方がいいと思う。 あるいはjava VMがインストールされてるなら、そっち使ってもシェルよりは楽。
- 911 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/09(月) 13:02:45.84 .net]
- 素直にCで書けばw
- 912 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/09(月) 15:13:46.00 .net]
- 1990年代には確かにこういうプログラムもCで書いてたが、今では はやらんよ。
スクリプト言語とかJava VM系言語とかでCSVライブラリ呼ぶように書くのが普通。 もっと低レイヤの処理ならCも使うけど、業務システムにCを使うってのは、 開発効率が悪いせいで、ほぼ亡びた。
- 913 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/09(月) 19:00:09.14 .net]
- compgenによる補完候補の絞り込みですが
bashでは正常に動作するもののzshでは絞り込まれません。 なぜでしょう? # bash 4.4.19 on Ubuntu 18.04 $ compgen -W "aaa bbb ccc" a aaa # zsh 5.5.1 on Ubuntu 18.04 % compgen -W "aaa bbb ccc" a aaa bbb ccc .zshrcでは autoload -U +X compinit && compinit autoload -U +X bashcompinit && bashcompinit してます
- 914 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/09(月) 22:19:36.10 .net]
- >>878
すでに入ってるLL使うならわかるが、JavaVM入れるくらいならCでいだろ。
- 915 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/10(火) 08:36:39.48 .net]
- >>880
>>876は「java VMがインストールされてるなら」って書いてあるじゃろ。 つまりCSV処理のためにjava VM入れるんじゃなくて既に入ってるならって話。 入ってないなら交渉してスクリプト言語入れる方を推奨だな。 エンタープライズ系は静的型検査が欲しいので相変わらずjava VMな言語が強いのよ。
- 916 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/15(日) 05:45:07.54 .net]
- シェルスクリプトでwebpackみたいに結合して1ファイルにしてくれるものとか
babelみたいにトランスパイルすることで言語を拡張するものって無いかな
- 917 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/15(日) 13:28:22.06 .net]
- >>882
シェルアーカイブ形式とか? file.sharという形で,ファイル後半に(圧縮した)バイナリーファイル,前半(というかヘッダ)に展開用シェルスクリプトとインストールスクリプトを書いておく) 最近のソフトウェアだとVMWare Horizon ClientsのLinux向けインストーラーがその形式だった。
- 918 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/16(月) 09:08:44.64 .net]
- >>883
別にバイナリファイルを動かそうって話じゃないよ 単にくっつけてくれればいいだけ
- 919 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/16(月) 11:20:08.69 .net]
- >>884
それがshar
- 920 名前:名無しさん@お腹いっぱい。 [2018/07/17(火) 14:15:20.69 .net]
- >>885
だからぜんぜん違う webpackみたいに1ファイルに結合するって話をしてる 結合しても結合する前と同じように動く すこしはsharについて調べてきたら?
- 921 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 14:17:28.78 .net]
- shar知らない人のために説明しておくと、
これは単なる自己解凍形式の圧縮ファイル形式に過
- 922 名前:ャない []
- [ここ壊れてます]
- 923 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 14:31:39.62 .net]
- それよりwebpackとやらについて説明しておくべきだったろ
聞き方が悪い
- 924 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 14:59:08.62 .net]
- 名前出てるんだから調べればいいだけだろ
- 925 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 15:01:52.39 .net]
- なんで聞く側が偉そうなんだよって話だろ
- 926 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 16:41:05.27 .net]
- どう使いたいかとかわからんのにな
>>887って言ってるけど、得られるのは自分でそれを使ってダイレクトにも頑張ればできる範囲だし
- 927 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 18:43:00.23 .net]
- webpackはCのプリプロセッサのincludeみたいなやつだよ
- 928 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/17(火) 19:48:43.74 .net]
- バンドルじゃないの。macOSのバンドルのようなのを単一ファイルでの
単にincludeだったらシェルスクリプトにcatでくっつければええやん。目的は単一のファイルにしたいだけなんだから バンドルなんだからバンドルをハンドルするヤツが必要じゃないの。んなのはshar使って自分で作ればってとこじゃね
- 929 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 07:15:49.95 .net]
- webpackとかbabelとか覚えたてのキーワード並べてみたかったんでしょ
そんなのが必要になる状況がクソなんだがなw
- 930 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 10:45:31.69 .net]
- >>891
> >>887って言ってるけど、得られるのは自分でそれを使ってダイレクトにも頑張ればできる範囲だし 自分で頑張ればできるって話なら、ファイル結合なんだからcatでもできるよ? 自分で頑張ればいいだけ。結合されても大丈夫なようにコードを書く必要があるけどな その頑張るのが面倒だからツール使うんだろう? ちなみにsharなんていらない。だってこれ目的を満たすためのツールじゃないから 自分でcatで頑張る+圧縮もしたいなーって思った時にオプションで使えるかもしれないツール
- 931 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 10:47:00.38 .net]
- >>894
単一のファイルで何千行も書きたいの?
- 932 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 10:48:08.70 .net]
- ちなみにsharの問題は展開しないと使えないって所
ルータのような書き込み回数に制限があるシステムでは致命的
- 933 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 10:48:51.53 .net]
- あと展開のためのコマンドが入ってない可能性もあるしな
ファイル結合するだけなら、外部のコマンドにも依存しない
- 934 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 12:29:11.73 .net]
- シェルスクリプトは実行可能なままファイル結合する必要性があんまりないってこと
そんなのとかトランスパイルとかが必要になるJavaScriptを指して、クソだなって言われてるんじゃない?
- 935 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 14:24:18.43 .net]
- てゆうかそれ以前に、そんな長いプログラムをシェルスクリプトで書いちゃいかんやろ。
他の言語を使うべき。 JavaScriptくらい高級な言語ならアリだけど。
- 936 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 19:30:47.19 .net]
- ディレクトリ A の中のファイルを全部
ディレクトリ B の中の同名のファイルと diff を撮りたいんですけどどうすればいいですか xarg で1つの引き数を渡す方法しかわからないのでおねがいします
- 937 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 19:32:58.08 .net]
- diff -r A B
でいいのでは?
- 938 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 20:29:52.99 .net]
- 少しはggるとかしてからここに恋や
- 939 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 21:00:07.83 .net]
- その前にmanすれ
- 940 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 21:33:29.76 .net]
- システムのスクリプトにも参考になるものがたくさんあるよね。zgrepとかzdiffとか
linuxだけどlddがシェルスクリプトだったのには驚いた
- 941 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 21:51:54.45 .net]
- bashのHISTTIMEFORMATを設定した環境だと
sshログアウトしてもbgプロセス消えないみたいなんだが なんでなん?
- 942 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 22:33:43.46 .net]
- 設定してなくてもsshログアウトしてもbgプロセス消えないけど、うちでは
他の設定じゃね
- 943 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/18(水) 23:31:51.58 .net]
- うーむ
会社の環境だとその設定の有無で変わったんだけど 今vmでcentのminimal立てたら設定なしにbgプロセス生きてた 何か勘違いしてるのか
- 944 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 00:16:48.11 .net]
- https://serverfault.com/questions/117152/do-background-processes-get-a-sighup-when-logging-off
だって。ちょい昔からデフォで子プロセスに
- 945 名前:HUP送らなくなってるんだなあ。OSやディストリによってデフォが違うだろうけど
huponexitオンにして、HISTTIMEFORMATを設定してもbgプロセスは消えるねえ [] - [ここ壊れてます]
- 946 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 09:21:29.33 .net]
- case文で,Bash特有の高速化オプションとかありませんかね。
- 947 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 10:02:38.02 .net]
- >>910
高速化できるんならオプションじゃなく最初からそうしてると思うが、 さらに、高速化が必要なほど遅いcaee文とは?
- 948 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 10:34:16.62 .net]
- >>902
Aにあるファイル名だけ比較したいんです Bのなかにはほかにもファイルがあったりするので diff A/$f B/$f とか場合によっては diff A/$f B/*/$f みたいなことがしたかったのです… ls なり find なりの出力ファイル名を変数に取り出すのってやっぱり難しいんですね 諦めます レスありがとうございました
- 949 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 11:14:05.74 .net]
- お題としてはちょっと楽しめると思うけど、諦めちゃうのか
- 950 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 11:19:41.98 .net]
- find A -type fして、それぞれbasenameとって、find B -name filename -exec hogeってかんじかな。
B側で何度もfindするのを減らしたいけど、キャッシュされればそれほど負荷じゃないか。
- 951 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 12:11:39.09 .net]
- diffの話ついでに
(GNU) diffでディレクトリごと比較したときに、一方のディレクトリにのみあるファイルを無視するオプションってある? diff -r /dirA /dirB | grep -v 'にのみ存在' とやればまあ大抵の場合解決するんだけども、たまたまあるファイルの変更箇所に「にのみ存在」っていう文があった時に 困るので、できればオプションで解決したい。
- 952 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 12:28:48.82 .net]
- LANG=Cで^Onlyにマッチさせてはじく
- 953 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 12:35:37.30 .net]
- diffの出力って行頭の文字が重要なのに、
これを無視した日本語ロケール作者は反省するべき。
- 954 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 12:53:00.49 .net]
- 結果に対してsedで…ってのはさすがに無駄だな
- 955 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 12:57:00.83 .net]
- >>916
ああなるほど。 diffの出力結果では行頭は変化を表わすところだから その行頭を除けばいいね。
- 956 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 15:19:36.24 .net]
- 詳しい解説サンクス
- 957 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/19(木) 20:13:49.97 .net]
- >>909
サンクス 俺の勘違いだったっぽい
- 958 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 01:50:52.37 .net]
- >>900
> てゆうかそれ以前に、そんな長いプログラムをシェルスクリプトで書いちゃいかんやろ。 行数で使う言語を決めるなや シェルスクリプトは、コマンドの連携処理を一番シンプルに書くことができる言語 シェルスクリプトが適している問題を、長いからという理由で他の言語を使うともっと長くなる なぜ非効率な言語を使うのか?
- 959 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 02:03:28.48 .net]
- はいはい
- 960 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 06:54:58.07 .net]
- この引用符…あっ(察し
- 961 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 07:21:43.92 .net]
- 引用符?
- 962 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 12:12:45.33 .net]
- >>922
まさにシェルスクリプトがプログラム間連携のための言語だからだよ。 1000行以上にも及ぶ複雑なプログラム間連携処理を シェルスクリプトで書く状況ってのは モジュール分割に失敗してる可能性がきわめて高い。 100行くらいの単体でも十分に使えるシェルスクリプトが10個ならば問題ないが。 シェルスクリプトは現代的プログラミング言語の持つ数々の抽象化機能を 欠いていて大規模プログラミングに向かないことは常に意識するべき。
- 963 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 16:50:00.03 .net]
- 仕事でならな。個人的なのでもそういう学習習得意欲がないんだったら馬の耳に念仏かと
- 964 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/20(金) 20:11:37.10 .net]
- ケンカはやめて(><)
- 965 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 02:15:31.20 .net]
- 二人をとめて \(^o^)/
- 966 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 02:44:08.71 .net]
- 私だ
- 967 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 09:20:03.54 .net]
- あえて不向き
- 968 名前:なことをやるのは好きだよ []
- [ここ壊れてます]
- 969 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 13:29:23.62 .net]
- >>926
> 1000行以上にも及ぶ複雑なプログラム間連携処理を > シェルスクリプトで書く状況ってのは > モジュール分割に失敗してる可能性がきわめて高い。 だからシェルスクリプトでモジュール分割するんでしょ?
- 970 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 13:30:12.48 .net]
- >>931
外部コマンドの呼び出しが多数存在する場合、 シェルスクリプトを使うのが向いてる
- 971 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 15:15:10.19 .net]
- >>933
外部コマンド呼び出しは敗北と同義よ! 漢なら全て内蔵コマンドで処理をせい!
- 972 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 15:36:08.22 .net]
- >>932
できてるならそんな話題になってないな
- 973 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 16:05:41.70 .net]
- >>935
普通に . (source)を使用するだけだけど?
- 974 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 16:08:19.12 .net]
- >>934
内部コマンドだけで処理できるなら 普通の言語のほうが良いよ 外部コマンドの連携に強いシェルスクリプトは 外部コマンドを呼び出すために使うもの 逆に普通の言語だと外部コマンドの呼び出しは面倒なんだ。
- 975 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 16:16:33.64 .net]
- そろそろ板違い
- 976 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/21(土) 16:30:52.91 .net]
- >>936
そういうのもできてるなら話題になってないって言ってるんだけど できてるって、言語的にできるできないじゃないよ >>938 板違いってか本題から外れすぎだな
- 977 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/22(日) 19:37:39.33 .net]
- >>934
includeやimportも禁止な
- 978 名前:名無しさん@お腹いっぱい。 [2018/07/22(日) 22:44:37.34 .net]
- やっぱ次のスレからワッチョイ付きにしようね
- 979 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/22(日) 23:49:40.49 .net]
- >>939
だからモジュール分割は . で出来てるから話題になってないってことでしょ?
- 980 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 01:44:04.51 .net]
- この掲示板ってワッチョイないのでは…
というかidもなかった
- 981 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 01:57:54.18 .net]
- 使えないのかもしかして
- 982 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 02:50:48.89 .net]
- 掲示板ごとの設定だからね
- 983 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 03:47:58.52 .net]
- じゃあもうこの板捨てるか?
Linux板にでも移動すりゃいいでしょ
- 984 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 04:20:40.19 .net]
- ワンチャンある
最近精神年齢キッズが多すぎるしな
- 985 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 11:29:23.13 .net]
- test
- 986 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 11:56:50.52 .net]
- false
- 987 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 20:31:02.18 .net]
- >>946
OSの話じゃないから向こうでやってもいいかもね
- 988 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 20:36:06.85 .net]
- あっ、でも向こうだと動かすOSがLInux前提になってしまうのか
- 989 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 21:56:56.76 .net]
- プログラム板にすれば?
- 990 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 22:23:40.05 .net]
- するならそっちだな
- 991 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 22:28:36.47 .net]
- ム板に賛成する
- 992 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 22:46:21.28 .net]
- ム板にしましょう
- 993 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/23(月) 22:48:33.03 .net]
- バッチ、パワシェのスレがム板にあるから不自然じゃないよね
- 994 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 01:25:43.39 .net]
- 賛成だ
しかしシェルスクリプトがunixにいられなくなるってのもなんかすごいな
- 995 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 01:37:47.14 .net]
- 俺も賛成だわ
- 996 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 01:43:21.92 .net]
- まあUnixもそれだけ多くの人に知られてきたってことじゃない?
もちろんキチガイは不要だけども。
- 997 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 06:02:37.30 .net]
- テンプレは同じでいいな
もし嫌ならそいつが新しいの考えろ
- 998 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 11:06:17.93 .net]
- とりあえず立てました。
テンプレを書き込もうとしたら長すぎと怒られたので、分割するついでにちょっと改変しました。 https://mevius.5ch.net/test/read.cgi/tech/1532397676/l50
- 999 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 11:25:29.69 .net]
- IDだけか?
ワッチョイいれるんじゃないのか
- 1000 名前:961 mailto:sage [2018/07/24(火) 11:43:21.78 .net]
- >>962
実はワッチョイを提案したのは俺なんだけど あんまり賛同者がいないようだし 勝手にやるのもどうかなと思ったんだわ。 今はID板でやって それでも荒れるようであればワッチョイ付けるっていう方針でいいかなと思ってる
- 1001 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 11:51:50.17 .net]
- >>963
俺はワッチョイも含めて賛成してたけど、まぁそれでいいか ざっと厶板の他のスレみた感じワッチョイまで採用してるスレほとんどないみたいだし、あっちでもあまり使わない文化なのかもしれん
- 1002 名前:、どうなんだろ []
- [ここ壊れてます]
- 1003 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 11:53:47.82 .net]
- ヘタレすぐる
- 1004 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 12:31:44.59 .net]
- プログラム板移動とか計画通りすぎるwww
- 1005 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 12:32:21.76 .net]
- どうせならIPアドレス表示まですればいいのに
攻撃してやんよ
- 1006 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 12:41:26.67 .net]
- プログラム板という修羅の国に移動か
- 1007 名前:961 mailto:sage [2018/07/24(火) 12:54:08.96 .net]
- プログラム板ってここと違って保守しなきゃいけないよね
誰かどのくらいで落ちるか分かる人います?
- 1008 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 12:54:54.13 .net]
- 20
- 1009 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 12:55:43.39 .net]
- あぁ時間か
どうだったっけな、さすがに覚えてない 20レスすれば当面落ちないとだけしか
- 1010 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 13:29:33.13 .net]
- 先日lispスレ立てたけど、4レスのまま全然落ちる気配ないよ。
- 1011 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/24(火) 20:36:12.16 .net]
- >>963
その段階的なやり方で良いと思う スレ立て乙!!
- 1012 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 04:22:56.20 .net]
- UNIX板伝統のシェルスクスレもム板行きかあ
UNIX板に限らず、専門板って過疎ってるところ多いから、統廃合してほしいな
- 1013 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 15:06:43.63 .net]
- シェルスクリプトはもはやUNIXだけのものじゃなくなったからなぁ。
クロスプラットフォームが当たり前になって、 OS別のマターというのもだいぶ限られてきたね。
- 1014 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 16:55:26.81 .net]
- UNIX板の中でシェルスクリプト総合スレが一番、というか唯一勢いがあるんだが、
これなくなると凄まじい限界集落になるな… Vim/Emacs/TeXあたりもソフトウエア板あたりなんか行ったら、もう…(´;ω;`)
- 1015 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 18:05:53.09 .net]
- せめてIDが出る板だったらよかったのにね…
- 1016 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 18:31:00.38 .net]
- まぁ言っても仕方ない
変わらない環境なんざないさ
- 1017 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 20:33:48.37 .net]
- WindowsではWSLでシェルスクリプトが動く
だけどWSL環境なんだよなぁ Windows標準でbusyboxとか採用してくれればいいのに バッチファイルの代わりとして使えるんだが
- 1018 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 21:09:31.29 .net]
- >>979
どんなことにつかいたいの?
- 1019 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 21:12:51.81 .net]
- バッチの意味不明なsyntaxと貧相なコマンド類は発狂しそうになるけど、パワシェではいかんの?
パワシェ使ったことないけど、さすがにまともに設計されてるんだろ
- 1020 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/25(水) 22:21:31.92 .net]
- PowerShellは、普段使いのシェルとしては使えない
- 1021 名前:名無しさん@お腹いっぱい。 [2018/07/25(水) 23:38:49.24 .net]
- Powershellは高機能なんだろうけど、高機能すぎて、あれこれ調べているうちに疲れた
結果として、Powershellの機能を呼び出すバッチファイルが出来上がってしまった
- 1022 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/26(木) 05:51:18.22 .net]
- >>980
WindowsでもLinuxでも動くスクリプトの作成 busyboxがあればシェルと基本的なコマンドは手に入るから あとは特定のアプリのWindowsバイナリ版を入れるだけで WindowsでもLinuxでもMacでも使えるスクリプトが作れる cygwinやmsysもあるけど、Windowsに標準搭載してほしい 最低限のことはできるようになる。 >>981 PowerShellはコマンド体型違うから
- 1023 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/27(金) 11:09:39.45 .net]
- >>984
太ってるの?
- 1024 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/27(金) 11:11:30.73 .net]
- >>984
cygwinのdllと起動batを持ち歩くといいよ どこでもsh動く
- 1025 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/07/27(金) 21:15:51.75 .net]
- >>986
いつのまにか感染してました、で会社をクビになるんですね。
- 1026 名前:名無しさん@お腹いっぱい。 [2018/08/01(水) 17:27:03.04 .net]
- >>986
Windows標準でbusyboxとか採用してって話なのに cygwinを持ち出されても、 そんなのが必要になるから、Windows標準で採用してって言ってるんだよ で終わる
- 1027 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 01:46:48.23 .net]
- >>988
SFU や WSL の流れからして、Busybox 相当の標準搭載も需要も無いと思いますよ。 必要ならば S
- 1028 名前:ysinternals 等の TechNet フォーラムに参加して要望を出してみては。 []
- [ここ壊れてます]
- 1029 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 04:05:27.78 .net]
- >>989
需要がないのになんで次から次へと出てくるの?
- 1030 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 04:15:34.43 .net]
- もうすぐみんなとお別れなの(´;ω;`)
- 1031 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 05:22:46.59 .net]
- 次スレ
シェルスクリプト総合 その28 https://mevius.5ch.net/test/read.cgi/unix/1533154936/
- 1032 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 06:31:33.06 .net]
- >>992
たぶん善意からだと思うが、すでに>>961 この板とはお別れ
- 1033 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 08:08:24.46 .net]
- 悪意だろ
- 1034 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 08:24:36.20 .net]
- そう先に思うのはお前自身が腐ってるからだろう
- 1035 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 09:08:24.13 .net]
- 埋め
- 1036 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 09:08:47.19 .net]
- 埋め
- 1037 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 09:09:28.02 .net]
- 次スレこちら
https://mevius.5ch.net/test/read.cgi/tech/1532397676/
- 1038 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 09:09:44.23 .net]
- 埋め
- 1039 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/08/02(木) 09:09:52.51 .net]
- お前らあばよ
- 1040 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 90日 15時間 15分 29秒
- 1041 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|