シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ:
シェルスクリプト総合 その28
http://mevius.5ch.net/test/read.cgi/tech/1532397676/
シェルスクリプト総合 その29
レス数が950を超えています。1000を超えると書き込みができなくなります。
2018/09/21(金) 23:34:47.98ID:/eJt2TVD
857デフォルトの名無しさん
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がこの記述量らしいな
パイプさまさまだわ
874デフォルトの名無しさん
2019/06/30(日) 04:34:44.87ID:29vlF+26 どこにパイプが...
875デフォルトの名無しさん
2019/06/30(日) 05:20:49.27ID:uXv60RDl >>872
dashで動けば、他のシェルでも動くよ
dashで動けば、他のシェルでも動くよ
876デフォルトの名無しさん
2019/06/30(日) 09:29:10.65ID:sdmPaDuU シェルスクリプトで可搬性のあるコードを書くのはそもそも無理がある
877デフォルトの名無しさん
2019/06/30(日) 10:28:41.23ID:2juPiYlp >>846
だよな。どこでも動くシェルスクリプトなんて都市伝説だし。
だよな。どこでも動くシェルスクリプトなんて都市伝説だし。
878デフォルトの名無しさん
2019/06/30(日) 10:43:07.31ID:Fo3wYRY8879デフォルトの名無しさん
2019/06/30(日) 16:52:33.33ID:rfDMTcnr >>875,878
なんでスクリプトの構文のみの話になってるの? 可搬性の話がずれてる。
autoconf が作る configure のような、メンテナンス性・可読性皆無だが比較的どこでも動くスクリプトみたいな奴
だと思ってるんだが皆はどういう認識なのよ?
なんでスクリプトの構文のみの話になってるの? 可搬性の話がずれてる。
autoconf が作る configure のような、メンテナンス性・可読性皆無だが比較的どこでも動くスクリプトみたいな奴
だと思ってるんだが皆はどういう認識なのよ?
880デフォルトの名無しさん
2019/06/30(日) 17:13:52.68ID:DWafJWcS シェルの仕様だけの問題じゃなくて、コマンドがOS、バージョンによってまちまち
IPアドレス取得するだけでも大量にバリエーションがあってどうにもならないから、Linuxではifconfigが非推奨になった
IPアドレス取得するだけでも大量にバリエーションがあってどうにもならないから、Linuxではifconfigが非推奨になった
881デフォルトの名無しさん
2019/06/30(日) 18:00:24.49ID:Fo3wYRY8 コマンドもPOSIX準拠のものだけ使うに決まってるじゃん
はい、可搬性ありまーす
rubyでsedを呼び出していて、非POSIXのオプション使ってるから
rubyは可搬性がないとか言われても困るw
この場合可搬性がないのはsed(の非POSIXのオプション)であって
呼び出してる言語(ruby or shell)が可搬性がないわけではない
はい、可搬性ありまーす
rubyでsedを呼び出していて、非POSIXのオプション使ってるから
rubyは可搬性がないとか言われても困るw
この場合可搬性がないのはsed(の非POSIXのオプション)であって
呼び出してる言語(ruby or shell)が可搬性がないわけではない
882デフォルトの名無しさん
2019/06/30(日) 18:38:54.22ID:29vlF+26883デフォルトの名無しさん
2019/06/30(日) 18:47:02.27ID:Fo3wYRY8 はぁ、なんでこんなに頭が悪いんだろう。
「C言語が吐き出すアセンブリ言語」は「どこでも動くアセンブリ言語」じゃないから
C言語は可搬性がないという主張ですかね。
ほんと、頭わりぃ
「C言語が吐き出すアセンブリ言語」は「どこでも動くアセンブリ言語」じゃないから
C言語は可搬性がないという主張ですかね。
ほんと、頭わりぃ
884デフォルトの名無しさん
2019/06/30(日) 19:12:33.55ID:wmvzG4iV 「POSIXクソだりー可搬性なんていらん」とかいうやつはshellcheckとかリンター使えよ
885デフォルトの名無しさん
2019/06/30(日) 19:29:06.56ID:/aVhErQn >>869
https://output.jsbin.com/hekociluta
Draw.io (http://www.draw.io/) ドキュメント
https://pastebin.com/KzSajdA8
間違ってるとこもあるだろうが、あとは自分で
https://output.jsbin.com/hekociluta
Draw.io (http://www.draw.io/) ドキュメント
https://pastebin.com/KzSajdA8
間違ってるとこもあるだろうが、あとは自分で
886デフォルトの名無しさん
2019/06/30(日) 20:26:11.65ID:1ALBmyOB >>881
それな。
「シェルスクリプトは可搬性がない!」なんて言ってる奴が単に可搬性のある書き方を知らないだけだと思う。
もちろんPOSIXに準拠するかしないかは個人の自由だけど
そんなことも知らずにPOSIX規格に記載のない書き方をしておいて「可搬性がない」は失笑モノだわ。
それな。
「シェルスクリプトは可搬性がない!」なんて言ってる奴が単に可搬性のある書き方を知らないだけだと思う。
もちろんPOSIXに準拠するかしないかは個人の自由だけど
そんなことも知らずにPOSIX規格に記載のない書き方をしておいて「可搬性がない」は失笑モノだわ。
887デフォルトの名無しさん
2019/06/30(日) 21:48:35.95ID:2juPiYlp 他で動かないように書けてしまうのが問題。
POSIX範囲外の余計な機能を付けるからだ。
すべて削除してPOSIX以外書けないひとつのshにするべし。
POSIX範囲外の余計な機能を付けるからだ。
すべて削除してPOSIX以外書けないひとつのshにするべし。
888デフォルトの名無しさん
2019/06/30(日) 22:03:54.02ID:pDzbN/vc \
 ̄ヽ、 _ノ
○
O と思うハゲであった
___
o,.,  ̄ `丶、
.〃;.; ; O `、
/;i;i;.; ; ° ヽ
j!;i;i;i;.; `、
.j!;i;i; ; V
. , -v{功テえ三≧k j i i}
.i;i;i;i∧;{i ___ ヽ〉-- 〃ヌニ≠ェァ;,、_ /〉
{i;i;i;i;i;i;ム ‘、 ̄≧ j.r−v{! __ `v身≧"
i;i;j!;i;i;i;.;丶 _ .ノノ `ム、´⌒`ー /;アー7´〉
. v;i;i;i; ;´ ,ァ 丶`_ ノ/ / y゜
. j;i;i;i;.; ィ( {! ヽ, i}U
. {;i;i;.; /‘≠ー弋__. ヘ iノ
:;i;i;.; ; }/ ____  ̄ \ |
.人;i;i;i;.; ト 卞、カv ̄T++=a、 〉 j}
.__/ ∧;i;i;i;,ミ 、  ̄ ̄ ̄ ̄ ̄ j〕 /^
\ ∧;弋ミ /
\ へ`,,ヾ;.;, ィ爪
ヽ へ、 . ´/ ト、__
} >; ,,__ーァ ´ .イ i \ ̄\
〃/⌒ヽ.j \ \
 ̄ヽ、 _ノ
○
O と思うハゲであった
___
o,.,  ̄ `丶、
.〃;.; ; O `、
/;i;i;.; ; ° ヽ
j!;i;i;i;.; `、
.j!;i;i; ; V
. , -v{功テえ三≧k j i i}
.i;i;i;i∧;{i ___ ヽ〉-- 〃ヌニ≠ェァ;,、_ /〉
{i;i;i;i;i;i;ム ‘、 ̄≧ j.r−v{! __ `v身≧"
i;i;j!;i;i;i;.;丶 _ .ノノ `ム、´⌒`ー /;アー7´〉
. v;i;i;i; ;´ ,ァ 丶`_ ノ/ / y゜
. j;i;i;i;.; ィ( {! ヽ, i}U
. {;i;i;.; /‘≠ー弋__. ヘ iノ
:;i;i;.; ; }/ ____  ̄ \ |
.人;i;i;i;.; ト 卞、カv ̄T++=a、 〉 j}
.__/ ∧;i;i;i;,ミ 、  ̄ ̄ ̄ ̄ ̄ j〕 /^
\ ∧;弋ミ /
\ へ`,,ヾ;.;, ィ爪
ヽ へ、 . ´/ ト、__
} >; ,,__ーァ ´ .イ i \ ̄\
〃/⌒ヽ.j \ \
889デフォルトの名無しさん
2019/06/30(日) 22:10:03.75ID:XM+o4kuM posix linker 作ったら需要ありそうだな?
890デフォルトの名無しさん
2019/06/30(日) 22:37:50.33ID:29vlF+26891デフォルトの名無しさん
2019/06/30(日) 22:40:13.43ID:rfDMTcnr >>886
結局複数環境で動かすには何が必要かは置かれた環境でまちまちなわけで。
grep や awk が POSIX 対応していない環境だってあるわけで、そういう人からすると
POSIX 準拠してればいいって言ってる人は論外なわけなんだわ。
結局複数環境で動かすには何が必要かは置かれた環境でまちまちなわけで。
grep や awk が POSIX 対応していない環境だってあるわけで、そういう人からすると
POSIX 準拠してればいいって言ってる人は論外なわけなんだわ。
892デフォルトの名無しさん
2019/06/30(日) 22:44:16.79ID:rfDMTcnr >>882
流石に「そのシステム専用」は失礼過ぎないか?
FreeBSD でも Linux でも AIX でも Solaris でも大概な UNIX ライクなシステムで動くし、それらの環境を持ってない
開発者が作ったプログラムを安全にサポートしてくれてるでしょ?
それとも autoconf とか automake とか使ったことない人かな? なら黙っててよ。
流石に「そのシステム専用」は失礼過ぎないか?
FreeBSD でも Linux でも AIX でも Solaris でも大概な UNIX ライクなシステムで動くし、それらの環境を持ってない
開発者が作ったプログラムを安全にサポートしてくれてるでしょ?
それとも autoconf とか automake とか使ったことない人かな? なら黙っててよ。
893デフォルトの名無しさん
2019/06/30(日) 22:50:27.23ID:wmvzG4iV894デフォルトの名無しさん
2019/06/30(日) 22:56:53.99ID:rfDMTcnr >>893
準拠してるっていっても非準拠の時代に対して互換性を確保する必要があるから PATH を通す順番
変えるとかでシステムごとに if 文地獄。
ここまでちゃんとやって可搬性があるって胸張れるってもんでしょ。
準拠してるっていっても非準拠の時代に対して互換性を確保する必要があるから PATH を通す順番
変えるとかでシステムごとに if 文地獄。
ここまでちゃんとやって可搬性があるって胸張れるってもんでしょ。
895デフォルトの名無しさん
2019/06/30(日) 22:59:21.24ID:Fo3wYRY8896デフォルトの名無しさん
2019/06/30(日) 23:03:50.43ID:29vlF+26897デフォルトの名無しさん
2019/06/30(日) 23:06:51.19ID:wmvzG4iV898デフォルトの名無しさん
2019/06/30(日) 23:12:25.38ID:rfDMTcnr >>895,896
当然 Yes ですよ?
そのシステムだけで動くものなら最初から Makefile だけつくってりゃいいって話になる。
ちゃんと書けてない、エラーメッセージろくによんでないからそうなるだけだろ?
当然 Yes ですよ?
そのシステムだけで動くものなら最初から Makefile だけつくってりゃいいって話になる。
ちゃんと書けてない、エラーメッセージろくによんでないからそうなるだけだろ?
899デフォルトの名無しさん
2019/06/30(日) 23:15:28.03ID:rfDMTcnr >>897
現実のシステム触ってなくて自信なくなったからディスるって、もう見てられないです。
現実のシステム触ってなくて自信なくなったからディスるって、もう見てられないです。
900デフォルトの名無しさん
2019/06/30(日) 23:15:47.94ID:Fo3wYRY8 >>898
ばかやなー。configureは環境毎に生成するものなんだから
可搬性が有るかどうかを考える必要がない問題
コピーしないものをコピーしても動くようにするには
どうするかなんて、考える意味がないことだろ
今話してるのは「シェルスクリプトで可搬性のあるコードを書く」という
書かないものについて、話をしても意味はない。
ばかやなー。configureは環境毎に生成するものなんだから
可搬性が有るかどうかを考える必要がない問題
コピーしないものをコピーしても動くようにするには
どうするかなんて、考える意味がないことだろ
今話してるのは「シェルスクリプトで可搬性のあるコードを書く」という
書かないものについて、話をしても意味はない。
901デフォルトの名無しさん
2019/06/30(日) 23:21:48.21ID:wmvzG4iV902デフォルトの名無しさん
2019/06/30(日) 23:23:29.76ID:rfDMTcnr >>900
configure が環境ごとの Makefile や config.h を生成するのであって、configure は環境ごとに生成するものではないぞ?
環境ごとに生成するならなぜ Unix Like 向けのオープンソースは configure を配るわけ?
その理屈なら configure.ac だけで良いんじゃないの?
INSTALL に autoconf 先に実行してくださいって書いてないのはなんで?
configure が環境ごとの Makefile や config.h を生成するのであって、configure は環境ごとに生成するものではないぞ?
環境ごとに生成するならなぜ Unix Like 向けのオープンソースは configure を配るわけ?
その理屈なら configure.ac だけで良いんじゃないの?
INSTALL に autoconf 先に実行してくださいって書いてないのはなんで?
903デフォルトの名無しさん
2019/06/30(日) 23:24:55.93ID:rfDMTcnr904デフォルトの名無しさん
2019/06/30(日) 23:27:00.13ID:wmvzG4iV >>903
具体的にそのシステムを言ってみ?
具体的にそのシステムを言ってみ?
905デフォルトの名無しさん
2019/06/30(日) 23:33:02.77ID:rfDMTcnr >>904
Solaris AIX HPUX とかそうじゃん。
Solaris AIX HPUX とかそうじゃん。
906デフォルトの名無しさん
2019/06/30(日) 23:36:30.65ID:wmvzG4iV >>905
で、POSIX 互換コマンドがどこにつっこんであるって?
で、POSIX 互換コマンドがどこにつっこんであるって?
907デフォルトの名無しさん
2019/06/30(日) 23:39:42.23ID:rfDMTcnr >>906
/usr/bin じゃないところ。
/usr/bin じゃないところ。
908デフォルトの名無しさん
2019/06/30(日) 23:42:36.51ID:wmvzG4iV909デフォルトの名無しさん
2019/06/30(日) 23:44:01.95ID:Fo3wYRY8 >>902
> 環境ごとに生成するならなぜ Unix Like 向けのオープンソースは configure を配るわけ?
configure を配ってるタイプなら、
そのconfigure には可搬性が有るということだろw
> 環境ごとに生成するならなぜ Unix Like 向けのオープンソースは configure を配るわけ?
configure を配ってるタイプなら、
そのconfigure には可搬性が有るということだろw
910デフォルトの名無しさん
2019/06/30(日) 23:48:45.72ID:rfDMTcnr911デフォルトの名無しさん
2019/06/30(日) 23:49:35.01ID:rfDMTcnr >>908
何の話? POSIX 非互換の話をしているんだが?
何の話? POSIX 非互換の話をしているんだが?
912デフォルトの名無しさん
2019/06/30(日) 23:49:37.98ID:wmvzG4iV913デフォルトの名無しさん
2019/07/01(月) 00:10:23.68ID:ASzHSATG >>889
何をリンクするんだ?
何をリンクするんだ?
914デフォルトの名無しさん
2019/07/01(月) 01:28:15.55ID:2smzn43h 結局POSIX規格に準じてないコマンドの具体例一つも出せてなくて草生えますよ
「現行で使われているPOSIX準拠を謳っている筈のXXX-OSでは
/bin/xxxにあるコマンドXXXがPOSIX規格とこれこれこういう点で不一致」
↑これを言えばいいだけだぜ? それを言うのに何レスを無駄な喧嘩で消費してるんだ。
「現行で使われているPOSIX準拠を謳っている筈のXXX-OSでは
/bin/xxxにあるコマンドXXXがPOSIX規格とこれこれこういう点で不一致」
↑これを言えばいいだけだぜ? それを言うのに何レスを無駄な喧嘩で消費してるんだ。
915デフォルトの名無しさん
2019/07/01(月) 01:36:40.01ID:4+biahsm と、後出し先輩がドヤっておりますw
916デフォルトの名無しさん
2019/07/01(月) 02:49:48.37ID:2smzn43h あ、後出し?
917デフォルトの名無しさん
2019/07/01(月) 04:01:56.69ID:TT0ZFmIC オプションの-と--の扱いが雑なコマンドはどうなの
findは-の後が単語だし(-name)
wgetも-の後に2文字指定したりするし( -nc)
tarは-が不要な上に-の有無で挙動が変わるpsまであるし
基本コマンドの時点で既にガバガバじゃねーか
ddはそもそも出身が違うしな
findは-の後が単語だし(-name)
wgetも-の後に2文字指定したりするし( -nc)
tarは-が不要な上に-の有無で挙動が変わるpsまであるし
基本コマンドの時点で既にガバガバじゃねーか
ddはそもそも出身が違うしな
918デフォルトの名無しさん
2019/07/01(月) 04:33:11.57ID:TlV+Kbgz なにか困りますか?そういうオプションで
ターミナル上で普通にコマンド打ってますよ。
あなた黒い画面(CLI)で仕事できない人ですか?
ターミナル上で普通にコマンド打ってますよ。
あなた黒い画面(CLI)で仕事できない人ですか?
919デフォルトの名無しさん
2019/07/01(月) 07:34:33.04ID:KK3BgYtY >>918
なにか困りますって、別のシステムにスクリプト持って行った時に正常動作しないから困ります、でしょ。
なにか困りますって、別のシステムにスクリプト持って行った時に正常動作しないから困ります、でしょ。
920デフォルトの名無しさん
2019/07/01(月) 07:54:28.17ID:2smzn43h921デフォルトの名無しさん
2019/07/01(月) 09:00:56.52ID:TlV+Kbgz >>919
お前言ってることめちゃくちゃだな
コマンドによってオプションの形式が違ってるって話を
お前はしていただろ
別のシステムに持っていったって、あるコマンドの
オプションの形式は同じなんだから正常に動くだろ
お前言ってることめちゃくちゃだな
コマンドによってオプションの形式が違ってるって話を
お前はしていただろ
別のシステムに持っていったって、あるコマンドの
オプションの形式は同じなんだから正常に動くだろ
922デフォルトの名無しさん
2019/07/01(月) 11:01:27.11ID:AbRjjU8q date コマンドの オプション、
GNU版 と他の (BSD系 Mac とか) で全然違ってて戸惑った事がある
GNU版 と他の (BSD系 Mac とか) で全然違ってて戸惑った事がある
923デフォルトの名無しさん
2019/07/01(月) 11:29:32.06ID:4+biahsm POSIXは実装ありきの後出し規格なんだよ
カバーしきれない部分がたくさんある
917の挙げてる中で wget tar はPOSIXコマンドじゃない
特にネットワーク系コマンドはほとんど規格化されていない
POSIXから外れた部分の可搬性を高めるにはどうする?
例えばネットから何か落とそうと思ったら wgetかcurl使うじゃん
でも全てのシステムに必ず入ってるわけじゃない
無いならインストールしてくださいってなるわな
バージョン上がると独自拡張されたり仕様変わったりで対応いるだろ
POSIXみたいに下位互換性も保証されない
可搬性ってやつはどうなるんだ?
カバーしきれない部分がたくさんある
917の挙げてる中で wget tar はPOSIXコマンドじゃない
特にネットワーク系コマンドはほとんど規格化されていない
POSIXから外れた部分の可搬性を高めるにはどうする?
例えばネットから何か落とそうと思ったら wgetかcurl使うじゃん
でも全てのシステムに必ず入ってるわけじゃない
無いならインストールしてくださいってなるわな
バージョン上がると独自拡張されたり仕様変わったりで対応いるだろ
POSIXみたいに下位互換性も保証されない
可搬性ってやつはどうなるんだ?
924デフォルトの名無しさん
2019/07/01(月) 12:13:07.49ID:ywGyCn2/925デフォルトの名無しさん
2019/07/01(月) 12:31:44.39ID:4+biahsm926デフォルトの名無しさん
2019/07/01(月) 12:34:28.70ID:ywGyCn2/927デフォルトの名無しさん
2019/07/01(月) 12:47:29.70ID:RLVJ6D4b >>926
説明できない奴に限ってこういうこと言い出すんだよな
適当に書きましたごめんなさいってなんで言えないんだろう
宮迫だって金もらってましたごめんなさいって最初に言ってれば
秋には復帰できてたろうになあ(まあ復帰しなくても構いませんが)
説明できない奴に限ってこういうこと言い出すんだよな
適当に書きましたごめんなさいってなんで言えないんだろう
宮迫だって金もらってましたごめんなさいって最初に言ってれば
秋には復帰できてたろうになあ(まあ復帰しなくても構いませんが)
928デフォルトの名無しさん
2019/07/01(月) 14:20:27.36ID:TT0ZFmIC Macの(BSD版)sed での上書き保存 - Qiita
https://qiita.com/catfist/items/1156ae0c7875f61417ee
BSD sed のラベルの後ろではコマンド区切りのセミコロンが使えない - Qiita
https://qiita.com/akanehara/items/c9e2e3267746f51577a1
優等生なはずのBSDの方が不便に思えるけど
https://qiita.com/catfist/items/1156ae0c7875f61417ee
BSD sed のラベルの後ろではコマンド区切りのセミコロンが使えない - Qiita
https://qiita.com/akanehara/items/c9e2e3267746f51577a1
優等生なはずのBSDの方が不便に思えるけど
929デフォルトの名無しさん
2019/07/01(月) 16:02:21.59ID:0UaOtlQU 優等生ってなにをもってなのかわからんが、BSDのコマンドよりもGNUの方があれやこれやオプションが充実してたりする。POSIXの方がもっと不便だぞw
開発者の数が全然違うんだろうからしょうがないんだろう
開発者の数が全然違うんだろうからしょうがないんだろう
930デフォルトの名無しさん
2019/07/01(月) 16:09:57.86ID:0UaOtlQU >>926
言語の可搬性ではなくて、やりたいことを書いたプログラム(シェルスクリプト)の可搬性を言っているんだろ
比喩にはなってないだろう。C++で書いたDirectXを使ったソースの可搬性なんてないと自分でも言っているんだから
言語の可搬性ではなくて、やりたいことを書いたプログラム(シェルスクリプト)の可搬性を言っているんだろ
比喩にはなってないだろう。C++で書いたDirectXを使ったソースの可搬性なんてないと自分でも言っているんだから
931デフォルトの名無しさん
2019/07/01(月) 16:50:15.40ID:2smzn43h そりゃsedの「GNU拡張」をBSDで使えば可搬性はなくなるだろうけど
「拡張」って言葉の意味わかってる?
双方ともPOSIX sedには最低限準拠してるから、
POSIX sedの仕様だけを守ってればどっちの環境でも動く。
「拡張」って言葉の意味わかってる?
双方ともPOSIX sedには最低限準拠してるから、
POSIX sedの仕様だけを守ってればどっちの環境でも動く。
932デフォルトの名無しさん
2019/07/01(月) 16:56:06.15ID:0UaOtlQU たぶん、ID:TT0ZFmIC はそういうレベルの話ではない
そもそも>>928は可搬性の話ではないだろう。POSIXにするとなお不便になるからな。可搬性の話なら最後の言葉は出ないだろう
そもそも>>928は可搬性の話ではないだろう。POSIXにするとなお不便になるからな。可搬性の話なら最後の言葉は出ないだろう
933デフォルトの名無しさん
2019/07/01(月) 18:51:49.95ID:4+biahsm 可搬性高いシェルスクリプト書くならPOSIXで書く
これは間違っていない
でもPOSIXで何でも書けるわけじゃない
環境依存しないと書けない部分がある
POSIXは不完全な規格だってことだ
俺はPOSIX推進派だけどなw
これは間違っていない
でもPOSIXで何でも書けるわけじゃない
環境依存しないと書けない部分がある
POSIXは不完全な規格だってことだ
俺はPOSIX推進派だけどなw
934デフォルトの名無しさん
2019/07/01(月) 19:18:29.65ID:MoEwNeEz まとめるとどこでも動くシェルスクリプトなんて都市伝説ってことだよね
935デフォルトの名無しさん
2019/07/01(月) 19:21:40.57ID:0UaOtlQU そもそも可搬性可搬性って、そんなあれやこれやの環境を管理していんのかいっていう
シェルスクリプトで書けるものなんて全然たいしたことは書けないので、環境がしょうがなく変わったらそれに対して書き換えればいいだろうとしか思わんな
シェルクスリプトは単に補助的にしか使わない、本業は別の言語(IDE、最低限でもmakeが必要な)な俺は、可搬性可搬性って???だなw
シェルスクリプトで書けるものなんて全然たいしたことは書けないので、環境がしょうがなく変わったらそれに対して書き換えればいいだろうとしか思わんな
シェルクスリプトは単に補助的にしか使わない、本業は別の言語(IDE、最低限でもmakeが必要な)な俺は、可搬性可搬性って???だなw
936デフォルトの名無しさん
2019/07/01(月) 19:22:31.61ID:0UaOtlQU937デフォルトの名無しさん
2019/07/01(月) 19:41:01.62ID:ywGyCn2/ まとめるとどこでも動くC言語なんて都市伝説ってことだよね
C言語でゲームできないもん
C言語でゲームできないもん
938デフォルトの名無しさん
2019/07/01(月) 19:42:42.21ID:0UaOtlQU イミフすぎwどうした?
939デフォルトの名無しさん
2019/07/01(月) 20:52:04.97ID:2smzn43h まあ要するに、POSIXに準拠しとけばかなり可搬性の高いシェルスクリプトが書ける。
でもどんな言語でもそうであるように「完璧で」「完全な」可搬性は実現できない。
しかしまあ俺個人としてはシェルスクリプトは可搬性を高めやすい言語だと思うけどね。
ちゃんと実装から独立した文書としての規格があるし。
でもどんな言語でもそうであるように「完璧で」「完全な」可搬性は実現できない。
しかしまあ俺個人としてはシェルスクリプトは可搬性を高めやすい言語だと思うけどね。
ちゃんと実装から独立した文書としての規格があるし。
940デフォルトの名無しさん
2019/07/01(月) 20:55:17.40ID:2smzn43h941デフォルトの名無しさん
2019/07/01(月) 21:09:18.21ID:0UaOtlQU >>939
あと、不完全なPOSIX規格でも、それがあればこそなにかあってもポーティングがどちからという楽すぎってのも
あと、不完全なPOSIX規格でも、それがあればこそなにかあってもポーティングがどちからという楽すぎってのも
942デフォルトの名無しさん
2019/07/01(月) 21:29:02.92ID:2smzn43h 次スレ立てるときワッチョイを有効にしたいんだけど
どうすればいいんだっけ。
どうすればいいんだっけ。
943デフォルトの名無しさん
2019/07/01(月) 21:31:41.60ID:0UaOtlQU いや、いらないw
944デフォルトの名無しさん
2019/07/01(月) 21:39:48.33ID:ywGyCn2/ >>938
だからシェルスクリプトで、外部コマンドが違っていて動かないというのなら、
C言語で、APIが違っていて動かないよね
でも言語(シェルスクリプト or C言語)は可搬性が有るよね
言語以外の部分が異なっていたとしても。
ってことだけど?
だからシェルスクリプトで、外部コマンドが違っていて動かないというのなら、
C言語で、APIが違っていて動かないよね
でも言語(シェルスクリプト or C言語)は可搬性が有るよね
言語以外の部分が異なっていたとしても。
ってことだけど?
945デフォルトの名無しさん
2019/07/01(月) 21:51:05.99ID:0UaOtlQU946デフォルトの名無しさん
2019/07/01(月) 21:54:31.40ID:0UaOtlQU947デフォルトの名無しさん
2019/07/01(月) 22:28:22.64ID:KK3BgYtY >>944
可搬性があるんじゃなくてコンパイルが通るだけ or プリプロセッサまでが通るだけ。
同じシステムコールでも SysV と BSD で動作が違うとかあって、コンパイル通るだけで碌に動かないものも出る。
C で可搬性を求めるなら automake 使ってどこが不都合かを確認しまくるしかない。
それも不完全なので最後は地道なデバッグ。
可搬性があるんじゃなくてコンパイルが通るだけ or プリプロセッサまでが通るだけ。
同じシステムコールでも SysV と BSD で動作が違うとかあって、コンパイル通るだけで碌に動かないものも出る。
C で可搬性を求めるなら automake 使ってどこが不都合かを確認しまくるしかない。
それも不完全なので最後は地道なデバッグ。
948デフォルトの名無しさん
2019/07/01(月) 22:46:24.38ID:ywGyCn2/949デフォルトの名無しさん
2019/07/01(月) 22:52:54.73ID:0UaOtlQU950デフォルトの名無しさん
2019/07/01(月) 22:53:24.20ID:0UaOtlQU また間違っちゃった。>>934にはナニかあるのかw
951デフォルトの名無しさん
2019/07/01(月) 22:54:29.90ID:ywGyCn2/952デフォルトの名無しさん
2019/07/01(月) 22:55:29.41ID:0UaOtlQU って、言ってるじゃんww
その直後にイミフのレスしてたんじゃん。なんなの?ww
その直後にイミフのレスしてたんじゃん。なんなの?ww
953デフォルトの名無しさん
2019/07/01(月) 22:59:32.21ID:2smzn43h なんで0か1かにそんなに拘るのか。
「シェルスクリプトでは可搬性のあるものは書けない」
という(間違った)認識に対して
「シェルスクリプトには可搬性を持たせられる」
と是正しただけなのにね。
そして可搬性の問題はシェルスクリプトに限らない。
どんな言語にも完全な可搬性はないし、かといって全く可搬性がない訳でもない。
それだけの話をどうしてこうも荒立てられるかね……。
「シェルスクリプトでは可搬性のあるものは書けない」
という(間違った)認識に対して
「シェルスクリプトには可搬性を持たせられる」
と是正しただけなのにね。
そして可搬性の問題はシェルスクリプトに限らない。
どんな言語にも完全な可搬性はないし、かといって全く可搬性がない訳でもない。
それだけの話をどうしてこうも荒立てられるかね……。
954デフォルトの名無しさん
2019/07/01(月) 23:02:42.75ID:ywGyCn2/ まとめるとどこでも動くシェルスクリプトは都市伝説じゃなくて作れるってことだよね
955デフォルトの名無しさん
2019/07/01(月) 23:03:30.59ID:0UaOtlQU ですw
956デフォルトの名無しさん
2019/07/01(月) 23:08:07.17ID:0UaOtlQUレス数が950を超えています。1000を超えると書き込みができなくなります。
