[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/25 22:56 / Filesize : 258 KB / Number-of Response : 1042
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

シェルスクリプト総合 その27



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/

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もなかった






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<258KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef