シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ:
シェルスクリプト総合 その28
http://mevius.5ch.net/test/read.cgi/tech/1532397676/
探検
シェルスクリプト総合 その29
■ このスレッドは過去ログ倉庫に格納されています
2018/09/21(金) 23:34:47.98ID:/eJt2TVD
773デフォルトの名無しさん
2019/06/26(水) 11:39:42.18ID:278w9ub/ bashなら echo -e ${PATH//:/\\n}
これなら tr のほうが可読性いいよな
これなら tr のほうが可読性いいよな
774デフォルトの名無しさん
2019/06/26(水) 12:27:41.49ID:A3AE1MVC IFS=:
for p in $PATH; do
echo "$p"
done
for p in $PATH; do
echo "$p"
done
775デフォルトの名無しさん
2019/06/26(水) 12:29:22.59ID:A3AE1MVC trは遅い。 ${PATH//:/\\n} は bash依存
776デフォルトの名無しさん
2019/06/26(水) 12:32:02.93ID:A3AE1MVC777デフォルトの名無しさん
2019/06/26(水) 14:20:31.53ID:MBtdxCbX また出たよ否定からのヤツ
778デフォルトの名無しさん
2019/06/26(水) 15:17:24.20ID:4AX1EN8S >>776
おお!すごい。
これはPOSIX準拠してるからどのOSでも(しかもPowerShellやRubyみたいな標準化されてない言語が入ってないUnix系OSですら)使える。
しかもIFSは「Internal Filed Separator」という意味で,それの値を変えるということは
「区切り文字を変える」ことを明示できる。
しかも余計な外部コマンドを使ってないから早い。
おお!すごい。
これはPOSIX準拠してるからどのOSでも(しかもPowerShellやRubyみたいな標準化されてない言語が入ってないUnix系OSですら)使える。
しかもIFSは「Internal Filed Separator」という意味で,それの値を変えるということは
「区切り文字を変える」ことを明示できる。
しかも余計な外部コマンドを使ってないから早い。
779デフォルトの名無しさん
2019/06/26(水) 15:23:24.08ID:4AX1EN8S もちろん時と場合によってPythonやC#を使ったりするけど,それでもシェルスクリプトを一番に考える理由って,規格と実装とが綺麗に分かれてることなんだよね。
PythonやC#にも一応規格というか標準はあるけど,その実装は公式のものとあと二つ三つくらいしかない。
シェルスクリプトにはPOSIX標準という「私は実装しません。この文書を読んで好きに実装して下さい」という素晴しい哲学の規格-実装の仕組みがある。
そのお陰で数十もの個々のPOSIXシェル実装があるから,様々な機械で動かせる。PDP-11用のC#コンパイラなんてないでしょ?
まあ複雑なこと(XMLパースとか排他処理とか)やろうとすると途端に面倒なことになるので,そういう時はPythonやC#に逃げるけどw
PythonやC#にも一応規格というか標準はあるけど,その実装は公式のものとあと二つ三つくらいしかない。
シェルスクリプトにはPOSIX標準という「私は実装しません。この文書を読んで好きに実装して下さい」という素晴しい哲学の規格-実装の仕組みがある。
そのお陰で数十もの個々のPOSIXシェル実装があるから,様々な機械で動かせる。PDP-11用のC#コンパイラなんてないでしょ?
まあ複雑なこと(XMLパースとか排他処理とか)やろうとすると途端に面倒なことになるので,そういう時はPythonやC#に逃げるけどw
780デフォルトの名無しさん
2019/06/26(水) 15:23:55.57ID:4AX1EN8S あ,「今時PDP-11なんて使わねーよ」なんていう例えという概念が分かっていないツッコミはなしで。
781デフォルトの名無しさん
2019/06/26(水) 15:38:30.86ID:A3AE1MVC782デフォルトの名無しさん
2019/06/26(水) 16:49:32.75ID:4AX1EN8S >>781
printfが外部コマンドのシェルがあるとは知らなんだ。
たしかに特殊組込コマンド(必ずシェルに組み込まなくてはいけないコマンド)一覧
http://pubs.opengroup.org/onlinepubs/9699919799/idx/sbi.html
にはprintfはないな。
printfが外部コマンドのシェルがあるとは知らなんだ。
たしかに特殊組込コマンド(必ずシェルに組み込まなくてはいけないコマンド)一覧
http://pubs.opengroup.org/onlinepubs/9699919799/idx/sbi.html
にはprintfはないな。
783デフォルトの名無しさん
2019/06/26(水) 17:23:49.84ID:A3AE1MVC >>782
それらはシェルに組み込まないと実現不可能なものだからね
カレントシェルの状態を変更・取得するものだから外部プロセスではできない。
それ以外は外部コマンドでいいわけだよ。
古いzshもprintfはビルトインではない
それらはシェルに組み込まないと実現不可能なものだからね
カレントシェルの状態を変更・取得するものだから外部プロセスではできない。
それ以外は外部コマンドでいいわけだよ。
古いzshもprintfはビルトインではない
784デフォルトの名無しさん
2019/06/26(水) 19:36:40.66ID:Y3pTO8/n 速度問題にするならプロファイラ欲しいよね
ボトルネック探すために
どんなツールを使っている?
ボトルネック探すために
どんなツールを使っている?
785デフォルトの名無しさん
2019/06/26(水) 19:56:32.05ID:A3AE1MVC 基本はtimeだな。あとはstrace使ってfork数の確認とか
シェルスクリプトが遅くなる原因はforkが大半なので
これを抑えるようにすると速くなる。
あとzshだとzprofというのが使える
シェルスクリプトが遅くなる原因はforkが大半なので
これを抑えるようにすると速くなる。
あとzshだとzprofというのが使える
786デフォルトの名無しさん
2019/06/26(水) 20:56:42.18ID:4AX1EN8S ていうかシェルスクリプトで速度を気にするのが間違いでは?w
早い処理速度を求めるんであればCで書けばいい。
早い処理速度を求めるんであればCで書けばいい。
787デフォルトの名無しさん
2019/06/26(水) 21:01:41.99ID:A3AE1MVC 別に間違いではないよ。
シェルスクリプトで実装るのが適切な問題を
遅いからという理由だけで、他の言語を使わなくて良くなる。
クソコード書いておいて、シェルスクリプトは遅い。
だからCで書くとか言われたらバカみたいって思うでしょ
シェルスクリプトで実装るのが適切な問題を
遅いからという理由だけで、他の言語を使わなくて良くなる。
クソコード書いておいて、シェルスクリプトは遅い。
だからCで書くとか言われたらバカみたいって思うでしょ
788デフォルトの名無しさん
2019/06/26(水) 21:24:26.72ID:4AX1EN8S >>787
> クソコード書いておいて、シェルスクリプトは遅い。
> だからCで書くとか言われたら
いや,それは単純にそんなコードを書くバカの問題であって,
プロファイラが必要になるくらい速度に厳しいプログラムを
シェルスクリプトで書いてしまえば,恐らく誰であろうとCより遅くなる。
だから「シェルスクリプトは遅い」というのは
「本質的に遅く,Cで書かないと速くならないプログラムを無理矢理シェルスクリプトで実装してる」
or
「シェルスクリプトの書き方を知らないがネット記事のコピペを切り貼りして作った凡コード」
の二通りに分かれる。
結局「バカでない人間がシェルスクリプトの速度をプロファイラを使ってまで気にする」という事態は発生しえない。
> クソコード書いておいて、シェルスクリプトは遅い。
> だからCで書くとか言われたら
いや,それは単純にそんなコードを書くバカの問題であって,
プロファイラが必要になるくらい速度に厳しいプログラムを
シェルスクリプトで書いてしまえば,恐らく誰であろうとCより遅くなる。
だから「シェルスクリプトは遅い」というのは
「本質的に遅く,Cで書かないと速くならないプログラムを無理矢理シェルスクリプトで実装してる」
or
「シェルスクリプトの書き方を知らないがネット記事のコピペを切り貼りして作った凡コード」
の二通りに分かれる。
結局「バカでない人間がシェルスクリプトの速度をプロファイラを使ってまで気にする」という事態は発生しえない。
789デフォルトの名無しさん
2019/06/27(木) 04:28:29.87ID:SGv/MKem プロファイラが必要になったからって、速度に厳しいわけじゃないぞ。
プロファイラってのは速度を追求するものではなく、ボトルネックを探すものだ。
シェルスクリプトでもちゃんと使っていれば、実用に耐えられないほど
遅くなるなんてことはないんだが
よくわかってないやつが使うと遅くなる。
大抵はループの中で大量のコマンド呼び出しをしてるからなんだけどな。
プロファイラってのは速度を追求するものではなく、ボトルネックを探すものだ。
シェルスクリプトでもちゃんと使っていれば、実用に耐えられないほど
遅くなるなんてことはないんだが
よくわかってないやつが使うと遅くなる。
大抵はループの中で大量のコマンド呼び出しをしてるからなんだけどな。
790デフォルトの名無しさん
2019/06/27(木) 17:54:22.07ID:vYBmK8+j perlのない環境で、grepやsed使って、
ついつい\d、\wとかを使って、困惑することしばし…
わかっちゃいるんだけど、よく忘れる orz
grep(-P)のように、sedも対応してくれんかのぉ
まぁ、気づかなきゃ同じことだけどw
ついつい\d、\wとかを使って、困惑することしばし…
わかっちゃいるんだけど、よく忘れる orz
grep(-P)のように、sedも対応してくれんかのぉ
まぁ、気づかなきゃ同じことだけどw
791デフォルトの名無しさん
2019/06/27(木) 18:09:55.21ID:Sx1H26YL シェルスクリプトと関係ないな。
コマンドの問題だし。
コマンドの問題だし。
792デフォルトの名無しさん
2019/06/27(木) 18:25:20.18ID:HOV3qatT だったらこのスレいらないな
793デフォルトの名無しさん
2019/06/27(木) 18:58:25.19ID:YlgL60Eu いまだに¥を平気で書いているのにとも
\使える書けるんだから\にしろ、そこからだw
って、(一部)Linuxで採用しているTakaoフォントのグリフが円記号なんだよな。元々の(古い)IPAがだが
\使える書けるんだから\にしろ、そこからだw
って、(一部)Linuxで採用しているTakaoフォントのグリフが円記号なんだよな。元々の(古い)IPAがだが
794デフォルトの名無しさん
2019/06/27(木) 19:11:05.80ID:pgi+u0Sx どんな環境でも動くシェルスクリプトって都市伝説だよね?
POSIX準拠にこだわったりってムダなことだったんだな。
どうせ可搬性が幻なら、あるがままを受け入れよう。
POSIX準拠にこだわったりってムダなことだったんだな。
どうせ可搬性が幻なら、あるがままを受け入れよう。
795デフォルトの名無しさん
2019/06/27(木) 19:40:57.78ID:Sx1H26YL 俺が作ったのはどの環境でも動いてるけど?
796デフォルトの名無しさん
2019/06/27(木) 20:22:07.56ID:gzj/T4br 僕が作ったシェルスクリプトも どの環境でも動いてくれています(KONAMI)
797デフォルトの名無しさん
2019/06/28(金) 13:06:45.81ID:hRIfy8PX798デフォルトの名無しさん
2019/06/28(金) 13:27:15.18ID:LKtIca5E >>739 のリンク先にあるPOSIXで必須とされるコマンド(grepやsedもこれに含まれる)の問題が、
シェルスクリプトと関係ないということでスレチというのなら、
このスレの存在意義が相当薄れることは確か。
シェルスクリプトと関係ないということでスレチというのなら、
このスレの存在意義が相当薄れることは確か。
799デフォルトの名無しさん
2019/06/28(金) 15:20:25.88ID:p9xekXNc >>797
じゃあお前は外部コマンド使用禁止な
じゃあお前は外部コマンド使用禁止な
800デフォルトの名無しさん
2019/06/28(金) 15:23:54.26ID:p9xekXNc 外部コマンド総合スレでも立てるか
でシェルスクリプトはスレチなw
でシェルスクリプトはスレチなw
801デフォルトの名無しさん
2019/06/28(金) 15:37:17.44ID:hRIfy8PX802デフォルトの名無しさん
2019/06/28(金) 15:40:05.21ID:p9xekXNc 反論できなくなるとアスペ認定か
どっちがアスペだよ
どっちがアスペだよ
803デフォルトの名無しさん
2019/06/28(金) 16:03:38.70ID:zQSIyUJ5 お前のログインシェルをfishにしてやろうか
804デフォルトの名無しさん
2019/06/28(金) 16:07:31.10ID:xFtlJ1q/ ww
805デフォルトの名無しさん
2019/06/28(金) 16:33:23.58ID:4HrFS9y+ いいやんfish
何で笑い物になってんの??
何で笑い物になってんの??
806デフォルトの名無しさん
2019/06/28(金) 16:45:37.81ID:hRIfy8PX807デフォルトの名無しさん
2019/06/28(金) 17:01:53.99ID:p9xekXNc808デフォルトの名無しさん
2019/06/28(金) 17:43:39.21ID:iEcNYkGc かなり馬鹿そうだな
809デフォルトの名無しさん
2019/06/28(金) 18:11:19.47ID:T2T4CcZF fishってw
810デフォルトの名無しさん
2019/06/28(金) 18:56:40.55ID:4HrFS9y+ シェルスクリプトが本当にイケてたらfishスクリプトだのVスクリプトだの出てこない。
811デフォルトの名無しさん
2019/06/28(金) 19:09:05.16ID:Ul5nd1dv C言語が本当にイケてたらPerlなんて出てこない
↑好きな言語に変更してください
↑好きな言語に変更してください
812デフォルトの名無しさん
2019/06/28(金) 19:11:15.58ID:Ul5nd1dv fishはシェルとして使うのは良いけど、
/bin/shでも/bin/bashでも動かないから
スクリプトとしては使えないんだよな
/bin/shでも/bin/bashでも動かないから
スクリプトとしては使えないんだよな
813デフォルトの名無しさん
2019/06/28(金) 19:12:15.60ID:Ul5nd1dv 良い言語が必ずしも普及するわけじゃなくて
結局は互換性、標準準拠のものが最後には残るんだよね。
JavaScriptとaltJSの関係でもよくわかった
結局は互換性、標準準拠のものが最後には残るんだよね。
JavaScriptとaltJSの関係でもよくわかった
814デフォルトの名無しさん
2019/06/28(金) 19:54:48.75ID:5SvDrToF つまりTypeScriptもいずれ滅びると。
815デフォルトの名無しさん
2019/06/28(金) 20:01:22.66ID:Ul5nd1dv816デフォルトの名無しさん
2019/06/28(金) 20:48:45.94ID:T2T4CcZF 男はCでwebアセンブラ書け
817デフォルトの名無しさん
2019/06/28(金) 21:33:38.23ID:T2T4CcZF ていうかそんなに互換性やら保守性やら気にするんだったら黙ってPOSIXに準拠しとけよとは思うけどね。
818デフォルトの名無しさん
2019/06/28(金) 21:40:41.84ID:fHg6yLGA POSIXモードもしくはPOSIX準拠をうたっているのが本当か?というとこかな
なにか完璧POSIX準拠それ以上も以下もないってどれだ?dash?
あと、POSIX以前もしくは不備のとかちょっと前の話題でもあったねえ
なにか完璧POSIX準拠それ以上も以下もないってどれだ?dash?
あと、POSIX以前もしくは不備のとかちょっと前の話題でもあったねえ
819デフォルトの名無しさん
2019/06/28(金) 23:19:35.88ID:2yxMx+rx シェルスクリプトの言語仕様なんてたかが知れてるんだから
覚えられないはずがないんだが、それができないのは覚えられないんじゃなくて
シェルプログラミングのプログラミングスタイルを理解できてないってことなんじゃないかな
手続き型というより関数型に近いスタイルだからね
>>818
dash(ash)一択でしょ
debian/ubuntuのデフォルトシェルだし
その他のシェルはPOSIX準拠ではない配列が使えてしまう
覚えられないはずがないんだが、それができないのは覚えられないんじゃなくて
シェルプログラミングのプログラミングスタイルを理解できてないってことなんじゃないかな
手続き型というより関数型に近いスタイルだからね
>>818
dash(ash)一択でしょ
debian/ubuntuのデフォルトシェルだし
その他のシェルはPOSIX準拠ではない配列が使えてしまう
820デフォルトの名無しさん
2019/06/28(金) 23:25:17.84ID:CM5w69Yd なんでshじゃダメなの?いや煽りでなしに。
821デフォルトの名無しさん
2019/06/28(金) 23:28:28.79ID:2yxMx+rx >>820
shの実体は何?
shの実体は何?
822デフォルトの名無しさん
2019/06/28(金) 23:37:24.02ID:CM5w69Yd 知らんけどもともとは何だったの?
823デフォルトの名無しさん
2019/06/28(金) 23:37:32.86ID:GaQSOKcq >>819
dashがたぶん近いんだろうが、POSIX準拠それ以上も以下もないのか本当に?というとこかな
POSIX準拠それ以上も以下もないんだったら、dashで動けば終了、他で動かないのはPOSIX準拠してないからそいつが悪いで済むんだろうなw
dashがたぶん近いんだろうが、POSIX準拠それ以上も以下もないのか本当に?というとこかな
POSIX準拠それ以上も以下もないんだったら、dashで動けば終了、他で動かないのはPOSIX準拠してないからそいつが悪いで済むんだろうなw
824デフォルトの名無しさん
2019/06/28(金) 23:42:51.93ID:GaQSOKcq >>822
/bin/sh の実態がbashだったりkshだったりdashだったりというのが現在
元々のオリジナルのshはアレすぎて現存しないんじゃないかな
オリジナルのshがアレなのでbashとかkshとか出る、kshをベースにPOSIX規格を作る、POSIXの仕様に合わせようと各shellは頑張るが、方言あるやん(確かkshでさえ)なのでash(dash)が出る
という流れじゃなかったかなあ。/bin/sh なんて存在しない、現在
/bin/sh の実態がbashだったりkshだったりdashだったりというのが現在
元々のオリジナルのshはアレすぎて現存しないんじゃないかな
オリジナルのshがアレなのでbashとかkshとか出る、kshをベースにPOSIX規格を作る、POSIXの仕様に合わせようと各shellは頑張るが、方言あるやん(確かkshでさえ)なのでash(dash)が出る
という流れじゃなかったかなあ。/bin/sh なんて存在しない、現在
825デフォルトの名無しさん
2019/06/28(金) 23:51:49.75ID:CM5w69Yd >>824
知らんけど聞く限り/bin/shの指し先が千差万別なのが諸悪の根元なんじゃないの?
どんなにショボくてもオリジナルのsh復興してそれ以外で書いちゃダメってことにすれば?
それで不便があったとしても、それが本来のshでしょ。
わがまま言っちゃいかん。
知らんけど聞く限り/bin/shの指し先が千差万別なのが諸悪の根元なんじゃないの?
どんなにショボくてもオリジナルのsh復興してそれ以外で書いちゃダメってことにすれば?
それで不便があったとしても、それが本来のshでしょ。
わがまま言っちゃいかん。
826デフォルトの名無しさん
2019/06/28(金) 23:54:24.85ID:2yxMx+rx オリジナルのsh = POSIX準拠ではない
改変版のsh = OSとそのバージョンの数だけ存在する(数十種類レベル)
改変版のsh = OSとそのバージョンの数だけ存在する(数十種類レベル)
827デフォルトの名無しさん
2019/06/29(土) 00:00:54.47ID:4wm1mmLB オリジナルのshのソースコード(C言語)
http://x68000.q-e-d.net/~68user/unix/pickup?sh
略
#define IF if(
#define THEN ){
#define ELSE } else {
#define ELIF } else if (
#define FI ;}
略
IF input>0
THEN Ldup(input,INIO);
input=INIO;
FI
略
(C言語)
http://x68000.q-e-d.net/~68user/unix/pickup?sh
略
#define IF if(
#define THEN ){
#define ELSE } else {
#define ELIF } else if (
#define FI ;}
略
IF input>0
THEN Ldup(input,INIO);
input=INIO;
FI
略
(C言語)
829デフォルトの名無しさん
2019/06/29(土) 00:09:28.44ID:Mqz9B8yO >>825
いやいや。POSIX規格の元がshではなくてkshということで、その時点でshは終わってる過去の遺物だろう
言うようなのは sh という別の規格があった方がいいと言っているようなもんだな。POSIXはなぜ作られたのかよーく考えよう
わがままwwてか「何も知らないくせにw」うるせーよっ
いやいや。POSIX規格の元がshではなくてkshということで、その時点でshは終わってる過去の遺物だろう
言うようなのは sh という別の規格があった方がいいと言っているようなもんだな。POSIXはなぜ作られたのかよーく考えよう
わがままwwてか「何も知らないくせにw」うるせーよっ
830デフォルトの名無しさん
2019/06/29(土) 00:10:03.56ID:4wm1mmLB831デフォルトの名無しさん
2019/06/29(土) 00:15:00.86ID:Mqz9B8yO >>827
Bourne さんは Algol68 プログラマであったそうで〜Bourne shell のソース自体も Algol68 風になっており
らしいからまあしょうがないんだろうと思うけど、defineの使い方の説明のサンプルでそういうのを見たことがあるが、まさか実際にというのは、それも有名どころがというはちょっと驚き
Bourne さんは Algol68 プログラマであったそうで〜Bourne shell のソース自体も Algol68 風になっており
らしいからまあしょうがないんだろうと思うけど、defineの使い方の説明のサンプルでそういうのを見たことがあるが、まさか実際にというのは、それも有名どころがというはちょっと驚き
832デフォルトの名無しさん
2019/06/29(土) 00:25:29.35ID:0fRKmc/o POSIX準拠をうたうOSのデフォルトシェルはPOSIX準拠を保証する。
Linuxの場合は/bin/shがこれにあたる。
ディストリによって実体は bash,dashと様々だが、
自身がshの場合はPOSIX互換モードで動作するようになっている。
とはいえ重箱の隅をつつけば、実装が追い付いていない部分はあるがね。
Linuxの場合は/bin/shがこれにあたる。
ディストリによって実体は bash,dashと様々だが、
自身がshの場合はPOSIX互換モードで動作するようになっている。
とはいえ重箱の隅をつつけば、実装が追い付いていない部分はあるがね。
833デフォルトの名無しさん
2019/06/29(土) 00:28:01.49ID:XWmNXWFB 互換と準拠を取り違えてるのか
初期のUNIXだとglobが外部コマンドらしいな
なんで検索機能をこう呼ぶのかよく分かったわ
初期のUNIXだとglobが外部コマンドらしいな
なんで検索機能をこう呼ぶのかよく分かったわ
834デフォルトの名無しさん
2019/06/29(土) 00:53:37.63ID:Mqz9B8yO >>824
>オリジナルのshがアレなのでbashとかkshとか出る、kshをベースにPOSIX規格を作る、POSIXの仕様に合わせようと各shellは頑張るが、方言あるやん(確かkshでさえ)なのでash(dash)が出る
オリジナルのshが機能不足だったり独特だったりで、(cshや)kshやbashやashやzshなどなどが出て乱立する
これはイカんということでPOSIXで規格をkshをベースに作る
ash(dash)は元々オリジナルshの(+ちょっとだけ機能追加した)再実装なので、それにPOSIX準拠という以外の余計なことは(ほとんどあまり)してない
ってとこかな
>オリジナルのshがアレなのでbashとかkshとか出る、kshをベースにPOSIX規格を作る、POSIXの仕様に合わせようと各shellは頑張るが、方言あるやん(確かkshでさえ)なのでash(dash)が出る
オリジナルのshが機能不足だったり独特だったりで、(cshや)kshやbashやashやzshなどなどが出て乱立する
これはイカんということでPOSIXで規格をkshをベースに作る
ash(dash)は元々オリジナルshの(+ちょっとだけ機能追加した)再実装なので、それにPOSIX準拠という以外の余計なことは(ほとんどあまり)してない
ってとこかな
835デフォルトの名無しさん
2019/06/29(土) 02:07:31.33ID:rJpz/Ysh 煮え切らない言い方だな…
そんなことしてるから可搬性なくなるんだよ。
機能不足だろうが独特だろうがそれがsh。
一切追加するな!余計なことするな!
そんなことしてるから可搬性なくなるんだよ。
機能不足だろうが独特だろうがそれがsh。
一切追加するな!余計なことするな!
836デフォルトの名無しさん
2019/06/29(土) 02:49:26.27ID:2GBw6kuy ググってなりもってこいよ、文句言うくらいだったら
文句言う自分では探さないで奇抜な怒りwだけって奇特な人だな
奇抜=あれやこれややる人が多数、そういうのが好まれ使われてるんだから、それを頭から否定する
文句言う自分では探さないで奇抜な怒りwだけって奇特な人だな
奇抜=あれやこれややる人が多数、そういうのが好まれ使われてるんだから、それを頭から否定する
837デフォルトの名無しさん
2019/06/29(土) 02:50:55.42ID:4wm1mmLB だからオリジナルのshだと可搬性がないんだって
838デフォルトの名無しさん
2019/06/29(土) 05:00:31.68ID:tuUcuaq1 「オリジナルのsh」とかいう自分用語で語るのやめてくれない?
839デフォルトの名無しさん
2019/06/29(土) 05:36:56.40ID:4wm1mmLB オリジナルのshという言い方が嫌なら、
最初に作られたshでもいいけど?
最初に作られたshでもいいけど?
840デフォルトの名無しさん
2019/06/29(土) 05:44:09.80ID:4wm1mmLB bash, zsh, ksh, (d)ash, yash, poshのいずれでもないshは可搬性がない
841デフォルトの名無しさん
2019/06/29(土) 06:13:45.36ID:khQF1iKv 文句言うだけが生きがいもしくは言わないと死んじゃうんだろうw
842デフォルトの名無しさん
2019/06/29(土) 07:46:29.87ID:tuUcuaq1 Bourneって「ボーン」って読むの?
843デフォルトの名無しさん
2019/06/29(土) 09:05:01.55ID:e/5j8c1q >>840
独自機能を使ったら可搬性がないのだからbash, zsh, ksh, (d)ash, yash, poshと別れてるのは百害あって一利なし。
bash, zsh, ksh, (d)ash, yash, poshのintersectionを取って新時代のshとし、他は滅ぶべし。
それ以外を使うものは地獄の業火で焼かれるべき。
独自機能を使ったら可搬性がないのだからbash, zsh, ksh, (d)ash, yash, poshと別れてるのは百害あって一利なし。
bash, zsh, ksh, (d)ash, yash, poshのintersectionを取って新時代のshとし、他は滅ぶべし。
それ以外を使うものは地獄の業火で焼かれるべき。
844デフォルトの名無しさん
2019/06/29(土) 09:06:26.66ID:YzN8MsSb bash はどこにでもあるイメージ
845デフォルトの名無しさん
2019/06/29(土) 11:12:01.76ID:XWmNXWFB UNIXでBourne shell誕生
SVR4で軽量版bshのash誕生
Debianで改良版ashのdash誕生
BSDでcsh誕生
cshの便利機能(alias、ジョブ制御)をbashが吸収
改良版cshのtcsh誕生
bshとcshと合わせたksh(ksh88、ksh93)誕生
kshは商用なのでフリー版(pdksh、mksh)誕生
既存シェルをつまみ食いしたbash誕生
改良版bashのzsh誕生
独立系のfish誕生
適当にググったけど種類多くてワロタわ
わざわざashを作った理由やkshが分かれてる理由が分からんが
SVR4で軽量版bshのash誕生
Debianで改良版ashのdash誕生
BSDでcsh誕生
cshの便利機能(alias、ジョブ制御)をbashが吸収
改良版cshのtcsh誕生
bshとcshと合わせたksh(ksh88、ksh93)誕生
kshは商用なのでフリー版(pdksh、mksh)誕生
既存シェルをつまみ食いしたbash誕生
改良版bashのzsh誕生
独立系のfish誕生
適当にググったけど種類多くてワロタわ
わざわざashを作った理由やkshが分かれてる理由が分からんが
846デフォルトの名無しさん
2019/06/29(土) 12:16:50.57ID:L6EEl7gg 可搬性ってそんなに重要か?
そこ重視すると可読性・メンテナンス性が、ひいては品質が落ちると思うんだがどうよ?
やりすぎると可搬性無くて死ぬだろうけど、各々の身辺環境は異なるのだから
各々が経験に応じて決めればよくね?
echo の引数で -n が使えるか使えないかなんて考えるのやめて10年以上経つわ。
そこ重視すると可読性・メンテナンス性が、ひいては品質が落ちると思うんだがどうよ?
やりすぎると可搬性無くて死ぬだろうけど、各々の身辺環境は異なるのだから
各々が経験に応じて決めればよくね?
echo の引数で -n が使えるか使えないかなんて考えるのやめて10年以上経つわ。
847デフォルトの名無しさん
2019/06/29(土) 14:11:03.73ID:L6EEl7gg848デフォルトの名無しさん
2019/06/29(土) 14:37:45.71ID:m0/FgwM7 どんどん便利な機能が追加されて良いではないか、みんな好きなの選べば?という人種と
何も変えてはいかん、全てを標準に合わせろ!という人種
大抵の人はその中間なんだろうけど。
bash-5.0 で取り入れられた新機能、一応フォローしておくか (そしてすぐ忘れる) と思うけど
それ積極的に使っていこうぜとは思わないもの。
何も変えてはいかん、全てを標準に合わせろ!という人種
大抵の人はその中間なんだろうけど。
bash-5.0 で取り入れられた新機能、一応フォローしておくか (そしてすぐ忘れる) と思うけど
それ積極的に使っていこうぜとは思わないもの。
849デフォルトの名無しさん
2019/06/29(土) 14:49:39.62ID:khQF1iKv 新機能のうちのいくつかもそのうち当たり前に使うようになってるでしょ。便利であれば
このスレでbash特有とかあるように
このスレでbash特有とかあるように
850デフォルトの名無しさん
2019/06/29(土) 15:04:32.87ID:khQF1iKv >>845
>bshとcshと合わせたksh(ksh88、ksh93)誕生
>kshは商用なのでフリー版(pdksh、mksh)誕生
>既存シェルをつまみ食いしたbash誕生
>改良版bashのzsh誕生
kshとcshを合わせたzshが誕生
じゃないかな。で、
bshにcshの便利なヒストリ(など)を取り込んだkshが誕生
ではないかな
時系列的には
https://d1jnx9ba8s6j9r.cloudfront.net/blog/wp-content/uploads/2019/05/Evolution-of-Linux-Shells-Types-of-Shells-in-Linux-Edureka-528x280.png
らしい。zshはcshの派生になってるけど正しくはkshからも引くべきだろうね、開発時のメッセージでそう明言してる
>bshとcshと合わせたksh(ksh88、ksh93)誕生
>kshは商用なのでフリー版(pdksh、mksh)誕生
>既存シェルをつまみ食いしたbash誕生
>改良版bashのzsh誕生
kshとcshを合わせたzshが誕生
じゃないかな。で、
bshにcshの便利なヒストリ(など)を取り込んだkshが誕生
ではないかな
時系列的には
https://d1jnx9ba8s6j9r.cloudfront.net/blog/wp-content/uploads/2019/05/Evolution-of-Linux-Shells-Types-of-Shells-in-Linux-Edureka-528x280.png
らしい。zshはcshの派生になってるけど正しくはkshからも引くべきだろうね、開発時のメッセージでそう明言してる
851デフォルトの名無しさん
2019/06/29(土) 16:07:00.45ID:khQF1iKv ああ、cshではなくてtcshだった
This is a shar file containing zsh, a ksh/tcsh-like shell.
This is a shar file containing zsh, a ksh/tcsh-like shell.
852デフォルトの名無しさん
2019/06/29(土) 16:24:24.49ID:0fRKmc/o853デフォルトの名無しさん
2019/06/29(土) 16:43:46.48ID:tuUcuaq1854デフォルトの名無しさん
2019/06/29(土) 16:53:39.78ID:0fRKmc/o >>853
POSIXは可搬性を高めるための規格なので逆だと思います。
POSIXは可搬性を高めるための規格なので逆だと思います。
855デフォルトの名無しさん
2019/06/29(土) 16:59:43.19ID:/BkVpaGH856デフォルトの名無しさん
2019/06/29(土) 17:05:11.99ID:/BkVpaGH857デフォルトの名無しさん
2019/06/29(土) 17:06:04.22ID:/BkVpaGH858デフォルトの名無しさん
2019/06/29(土) 17:13:24.88ID:/BkVpaGH >>845
> わざわざashを作った理由やkshが分かれてる理由が分からんが
オープンソースではないのでソースコードが公開されない
資産が生かせない
UNIXでBourne shell誕生
○(UNIX)がBourne shell改良、shの亜種○を作る
△(UNIX)が更に改良、shの亜種△を作る
□(UNIX)が更にl改良、shの亜種□を作る
◇(UNIX)が更にl改良、shの亜種◇を作る
UNIX界隈で、shという名前でバージョン番号すら
無いshの亜種が大量に生まれる
そしてshの最終形態でやっとPOSIXに
準拠したかもしれない程度のレベルで互換性がない
> わざわざashを作った理由やkshが分かれてる理由が分からんが
オープンソースではないのでソースコードが公開されない
資産が生かせない
UNIXでBourne shell誕生
○(UNIX)がBourne shell改良、shの亜種○を作る
△(UNIX)が更に改良、shの亜種△を作る
□(UNIX)が更にl改良、shの亜種□を作る
◇(UNIX)が更にl改良、shの亜種◇を作る
UNIX界隈で、shという名前でバージョン番号すら
無いshの亜種が大量に生まれる
そしてshの最終形態でやっとPOSIXに
準拠したかもしれない程度のレベルで互換性がない
859デフォルトの名無しさん
2019/06/29(土) 18:33:44.12ID:pTnnUNQ0860デフォルトの名無しさん
2019/06/29(土) 18:46:06.33ID:/BkVpaGH ああ、訂正 ライセンスがクソだったのでソースが再利用できない
861デフォルトの名無しさん
2019/06/29(土) 19:57:38.97ID:khQF1iKv ということでashは「再実装」なんだなと納得
862デフォルトの名無しさん
2019/06/29(土) 20:03:34.74ID:khQF1iKv あと
誰も Bourne shell の文法がどうなっているかを本当には知らない。ソースコードを調べてみてもほとんど役に立たない。
とかいうのもなんか納得できるな。違うかもだが。そういう時代だったのねと
rcという変わり種の作者がだから酷く言っているだけかと思った。それもあるかもだがw
誰も Bourne shell の文法がどうなっているかを本当には知らない。ソースコードを調べてみてもほとんど役に立たない。
とかいうのもなんか納得できるな。違うかもだが。そういう時代だったのねと
rcという変わり種の作者がだから酷く言っているだけかと思った。それもあるかもだがw
863デフォルトの名無しさん
2019/06/29(土) 20:11:26.48ID:LSJMfKyW >>861
正確に言えば、POSIX以前に作られた、 POSIX準拠してない Bourne shell を廃棄して
POSIX準拠で作り直したということ
(POSIX)シェルを再実装したのは正しいが、Bourne shellそのものを再実装したのではない
正確に言えば、POSIX以前に作られた、 POSIX準拠してない Bourne shell を廃棄して
POSIX準拠で作り直したということ
(POSIX)シェルを再実装したのは正しいが、Bourne shellそのものを再実装したのではない
864デフォルトの名無しさん
2019/06/29(土) 20:16:33.84ID:khQF1iKv865デフォルトの名無しさん
2019/06/29(土) 20:24:08.27ID:khQF1iKv Ash is a reimplementation of the System V shell. Currently it has most
features of that shell, plus some additions. It runs on 4.2 and 4.3BSD,
SystemV releases 1, 2, 3, SystemIII, and perhaps Version 7. Documentation
includes a list of differences, a manpage, and internals documentation.
It has several built-ins and shell functions.
のようだね。最初は。POSIX準拠はその後でという怪しい図のソコは間違っていないような
features of that shell, plus some additions. It runs on 4.2 and 4.3BSD,
SystemV releases 1, 2, 3, SystemIII, and perhaps Version 7. Documentation
includes a list of differences, a manpage, and internals documentation.
It has several built-ins and shell functions.
のようだね。最初は。POSIX準拠はその後でという怪しい図のソコは間違っていないような
866デフォルトの名無しさん
2019/06/29(土) 20:29:32.51ID:LSJMfKyW System V shellの再実装であって、Bourne shellの再実装ではない
867デフォルトの名無しさん
2019/06/29(土) 20:31:23.20ID:LSJMfKyW System V shellはBourne shellを名乗っているのかもしれないが、
オリジナルのBourne shellではない
オリジナルという言い方が気に食わないなら
最初に作られたshと読みかえれ
オリジナルのBourne shellではない
オリジナルという言い方が気に食わないなら
最初に作られたshと読みかえれ
868デフォルトの名無しさん
2019/06/29(土) 20:43:19.37ID:khQF1iKv 別にそこはどうでもいい。てかちょっと見苦しいかなw
869デフォルトの名無しさん
2019/06/29(土) 23:55:59.43ID:tuUcuaq1 >>850
なんか揉めそうだけど、その図のより正確な版を5ch wikiかなにかに作ったらいいかもね。
なんか揉めそうだけど、その図のより正確な版を5ch wikiかなにかに作ったらいいかもね。
870デフォルトの名無しさん
2019/06/30(日) 00:09:13.01ID:wmvzG4iV Bourne Shellに親でも殺されたのか?
871デフォルトの名無しさん
2019/06/30(日) 00:55:36.25ID:1ALBmyOB POSIXに親を殺された奴もいるしなw
872デフォルトの名無しさん
2019/06/30(日) 03:55:44.69ID:rfDMTcnr873デフォルトの名無しさん
2019/06/30(日) 03:59:41.59ID:CMkdrv99 iocall attach user_output file xx
list
iocall attach user_output syn user_i/o
Multicsだとls >xxがこの記述量らしいな
パイプさまさまだわ
list
iocall attach user_output syn user_i/o
Multicsだとls >xxがこの記述量らしいな
パイプさまさまだわ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★5 [おっさん友の会★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 [ぐれ★]
- 【速報】 米大使「はっきりさせておこう、米国は尖閣諸島含め日本の防衛に全面コミット、中国がどうしようが変わらない」 [お断り★]
- 中国側が首相答弁の撤回要求、日本側拒否★7 [夜のけいちゃん★]
- 自民、経済対策で子ども1人に2万円給付へ 児童手当に上乗せ 所要額は約4000億円 [ぐれ★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★7 [ぐれ★]
- 山上妹「統一信者から安倍自民への投票を求められた」法廷で証言 [947332727]
- 【速報】高市首相「つい言い過ぎた」 存立危機事態の答弁について [237216734]
- 【速報】中国、水産物輸入停止★2 [989870298]
- 【悲報】高市早苗見てると80年前のジャップ女も戦争煽ったってよく分かるよね🥺 [616817505]
- 【ネトウヨ朗報】イギリスのトラス元首相、高市有事で高市早苗の支持を表明 [603416639]
- 【高市訃報】ホタテ業者、死亡😇😇😇 [573041775]
