シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ:
シェルスクリプト総合 その28
http://mevius.5ch.net/test/read.cgi/tech/1532397676/
探検
シェルスクリプト総合 その29
レス数が950を超えています。1000を超えると書き込みができなくなります。
2018/09/21(金) 23:34:47.98ID:/eJt2TVD
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:0UaOtlQU957デフォルトの名無しさん
2019/07/01(月) 23:20:50.03ID:/rKj5XUf958デフォルトの名無しさん
2019/07/01(月) 23:37:03.32ID:4+biahsm おまえらまとめるの好きだよなw
959デフォルトの名無しさん
2019/07/01(月) 23:41:59.98ID:KK3BgYtY POSIX (というか BSD の /bin/sh である dash?) に合わせたほうが幸せなのか
#!/bin/bash って書いて bash 限定にしたほうが幸せなのか。
個人的には後者でサクッと短時間でかつ可読性高く仕上げるのが好み。
#!/bin/bash って書いて bash 限定にしたほうが幸せなのか。
個人的には後者でサクッと短時間でかつ可読性高く仕上げるのが好み。
960デフォルトの名無しさん
2019/07/01(月) 23:44:17.54ID:GotlxjDf > というか BSD の /bin/sh である dash?
dashのdはdebian linuxのdな
> 個人的には後者でサクッと短時間でかつ可読性高く仕上げるのが好み。
それはPOSIX(dash)でもbashでも変わらん
dashのdはdebian linuxのdな
> 個人的には後者でサクッと短時間でかつ可読性高く仕上げるのが好み。
それはPOSIX(dash)でもbashでも変わらん
961デフォルトの名無しさん
2019/07/02(火) 00:01:10.80ID:p7jTc1Zw 可搬性云々は要件次第なんだよ
動作保証は Ubuntuのみで良いなら環境依存で書けばいい
動作保証は Ubuntuのみで良いなら環境依存で書けばいい
962デフォルトの名無しさん
2019/07/02(火) 00:02:35.22ID:Tm8GOmHy >>960
> dashのdはdebian linuxのdな
これは勉強不足で失礼いたしました。
>それはPOSIX(dash)でもbashでも変わらん
POSIX(dash) で [[ =~ ]] って簡潔に書ける?
for ((i=0;16>i;i++)) ; do (loop内で $i 更新あり) とかは?
> dashのdはdebian linuxのdな
これは勉強不足で失礼いたしました。
>それはPOSIX(dash)でもbashでも変わらん
POSIX(dash) で [[ =~ ]] って簡潔に書ける?
for ((i=0;16>i;i++)) ; do (loop内で $i 更新あり) とかは?
963デフォルトの名無しさん
2019/07/02(火) 00:06:02.50ID:+q6wCm94 GNU拡張はGNUの方言だけどBSDにも方言くらいあるでしょ
BSDだけで盛られたコマンドってないの
BSDだけで盛られたコマンドってないの
964デフォルトの名無しさん
2019/07/02(火) 00:15:08.55ID:Atdu9zIi >>962
> POSIX(dash) で [[ =~ ]] って簡潔に書ける?
多くはcaseで十分。足りなければexprを使えばいい。
> for ((i=0;16>i;i++)) ; do (loop内で $i 更新あり) とかは?
seqかwhileを使えばいい
> POSIX(dash) で [[ =~ ]] って簡潔に書ける?
多くはcaseで十分。足りなければexprを使えばいい。
> for ((i=0;16>i;i++)) ; do (loop内で $i 更新あり) とかは?
seqかwhileを使えばいい
965デフォルトの名無しさん
2019/07/02(火) 00:31:10.69ID:rBxHnYzF >>964
exprってPOSIXだも正規表現処理できるのか。
exprってPOSIXだも正規表現処理できるのか。
966デフォルトの名無しさん
2019/07/02(火) 00:34:13.92ID:uO4UDEG+ 簡潔にって書いてあるだろうに
967デフォルトの名無しさん
2019/07/02(火) 00:37:15.66ID:Tm8GOmHy968デフォルトの名無しさん
2019/07/02(火) 01:41:05.60ID:Atdu9zIi969デフォルトの名無しさん
2019/07/02(火) 01:43:35.24ID:Atdu9zIi >>965
https://pubs.opengroup.org/onlinepubs/009695399/utilities/expr.html
> The ':' matching operator shall compare the string resulting from the evaluation of expr1 with
> the regular expression pattern
https://pubs.opengroup.org/onlinepubs/009695399/utilities/expr.html
> The ':' matching operator shall compare the string resulting from the evaluation of expr1 with
> the regular expression pattern
970デフォルトの名無しさん
2019/07/02(火) 01:44:27.35ID:uO4UDEG+ 好みって言っているのに。それはあなたの好み
好みに合うようななにかを提示するかスルーすればいいだろうに
好みに合うようななにかを提示するかスルーすればいいだろうに
971デフォルトの名無しさん
2019/07/02(火) 03:09:33.83ID:rBxHnYzF >>962
[[ "$VAR" =~ '<regexp>' ]]
↓
expr "$VAR" : '<regexp>'
for ((i=0;16>i;i++)) ; do
echo $i
done
↓
i=0; while [ $i -lt 16 ]; do
echo $i
i=$((i+1)); done
こんなもんでいかがでしょ。
簡潔かつ高い可搬性を持ったシェルスクリプトになったと思う。
よければこれから書く可搬性の高いシェルスクリプトの参考にしてみて!
[[ "$VAR" =~ '<regexp>' ]]
↓
expr "$VAR" : '<regexp>'
for ((i=0;16>i;i++)) ; do
echo $i
done
↓
i=0; while [ $i -lt 16 ]; do
echo $i
i=$((i+1)); done
こんなもんでいかがでしょ。
簡潔かつ高い可搬性を持ったシェルスクリプトになったと思う。
よければこれから書く可搬性の高いシェルスクリプトの参考にしてみて!
972デフォルトの名無しさん
2019/07/02(火) 03:45:23.93ID:uO4UDEG+ まさか、その変えた方が簡潔かつ高い可搬性を持ったという??
なんのためのbash(などの)の拡張なんだかだよ。俺には理解できない。まあ、ID:Tm8GOmHyが理解できたら特にだけど
なんのためのbash(などの)の拡張なんだかだよ。俺には理解できない。まあ、ID:Tm8GOmHyが理解できたら特にだけど
973デフォルトの名無しさん
2019/07/02(火) 03:49:34.72ID:uO4UDEG+ ところで、while内での変数の変更とかどうしてんの?そんなにPOSIXに拘る人は
974デフォルトの名無しさん
2019/07/02(火) 03:52:13.98ID:uO4UDEG+ ああ、パイプでサブシェルになってしまう場合のwhileね。よく使うパターンの
975デフォルトの名無しさん
2019/07/02(火) 03:55:40.28ID:Atdu9zIi たったこれだけの違いで大騒ぎ(笑)
976デフォルトの名無しさん
2019/07/02(火) 03:58:00.36ID:uO4UDEG+ お前がいうなw
977デフォルトの名無しさん
2019/07/02(火) 04:01:44.98ID:Atdu9zIi >>974
今後の人生、サブシェルの中に移住すればいいだけだろ
cat dummy.txt | {
i=0
while IFS= read -r line; do
i=$((i+1))
done
echo "$i"
}
今後の人生、サブシェルの中に移住すればいいだけだろ
cat dummy.txt | {
i=0
while IFS= read -r line; do
i=$((i+1))
done
echo "$i"
}
978デフォルトの名無しさん
2019/07/02(火) 04:05:15.58ID:uO4UDEG+ そのcatレベルで必要なんじゃね、普通は
そんな狭いパターンが主なのか?お前の人生は。俺の人生でそのパターンは少なさそう
そういうんじゃないよ普遍的wなのでだよ
そんな狭いパターンが主なのか?お前の人生は。俺の人生でそのパターンは少なさそう
そういうんじゃないよ普遍的wなのでだよ
979デフォルトの名無しさん
2019/07/02(火) 04:05:54.52ID:Atdu9zIi >>978
イミフ。例を出せ例を
イミフ。例を出せ例を
980デフォルトの名無しさん
2019/07/02(火) 04:12:40.39ID:Atdu9zIi981デフォルトの名無しさん
2019/07/02(火) 04:21:16.83ID:uO4UDEG+ なにか前処理
hoge=0
cat | while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
とか。ループ中に例外的なのを検出した後にトップレベルで整理するとか。あとは、whileの後にもパイプで続けてその後でとか。局所的なので使うことはないな
気が短いなw
hoge=0
cat | while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
とか。ループ中に例外的なのを検出した後にトップレベルで整理するとか。あとは、whileの後にもパイプで続けてその後でとか。局所的なので使うことはないな
気が短いなw
982デフォルトの名無しさん
2019/07/02(火) 04:29:33.75ID:Atdu9zIi こうすればいいだけw
なにか前処理
cat | {
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
}
なにか前処理
cat | {
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
}
983デフォルトの名無しさん
2019/07/02(火) 04:33:37.38ID:uO4UDEG+ ほんとうにそれでいいと思うのか?w
なんか無理してんなと思うけど、POSIXに拘る人はそう書くのねと理解はした、お応えありがとう
なんか無理してんなと思うけど、POSIXに拘る人はそう書くのねと理解はした、お応えありがとう
984デフォルトの名無しさん
2019/07/02(火) 04:35:32.93ID:Atdu9zIi985デフォルトの名無しさん
2019/07/02(火) 04:37:28.40ID:uO4UDEG+ いやあ、ああいうのが普通な人には何も言い返せないよ。てか「言い返す」って。喧嘩かなんかなのか?w
986デフォルトの名無しさん
2019/07/02(火) 04:41:11.93ID:Atdu9zIi 喧嘩じゃなくて、お前の意見を言えって。
正しく動くだろ?
なにか問題が有るのか?
正しく動くだろ?
なにか問題が有るのか?
987デフォルトの名無しさん
2019/07/02(火) 04:45:47.25ID:Atdu9zIi シェルスクリプト初心者です。 { } の使い方がわかりません
とかいうなら、関数にでもすればいい
foo() {
なにか前処理
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
}
cat | foo
お前の苦手な { } が無くてすんだぞw
サブシェルうんぬんの前に、関数の中で使う変数は、関数の中にとどめておけよ。
わかりやすいコーディングというのはこういうものだ
とかいうなら、関数にでもすればいい
foo() {
なにか前処理
hoge=0
while IFS= read -r line; do
[ なにか ] && hoge=1
ほかにいろいろ
done
if [ hoge = 0 ]; then
前処理の調整
else
前処理の調整
fi
}
cat | foo
お前の苦手な { } が無くてすんだぞw
サブシェルうんぬんの前に、関数の中で使う変数は、関数の中にとどめておけよ。
わかりやすいコーディングというのはこういうものだ
988デフォルトの名無しさん
2019/07/02(火) 04:47:32.87ID:uO4UDEG+ そのサブシェルの中で後は全部やるんでしょ?必要な部分を。それで問題無いと思うなら、それでいいんじゃないの
「なんか無理してんな」ってのがわからないんだったらそれはそれでいいよ。元ネタと同じく、好みの問題。好みがわからないでしょ
「なんか無理してんな」ってのがわからないんだったらそれはそれでいいよ。元ネタと同じく、好みの問題。好みがわからないでしょ
989デフォルトの名無しさん
2019/07/02(火) 04:50:12.51ID:Atdu9zIi だから問題ないし、お前を含めて誰も問題があると言ってない。
お前さ、なんで自分で問題点を指摘できないのに
さも問題があるかのように装ってるわけ?
ばれないとでも思った?
お前さ、なんで自分で問題点を指摘できないのに
さも問題があるかのように装ってるわけ?
ばれないとでも思った?
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★2 [BFU★]
- 止まらぬ「日本売り」 高市財政への懸念で進む金利上昇と円安 [蚤の市★]
- 【いちご高騰】ヤマザキのクリスマスケーキ、いちご無し販売 [おっさん友の会★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★10 [樽悶★]
- 【MLB】ドジャース・山本由伸と渦中の村上宗隆が会食 米メディア騒然 「村上と大谷翔平が同じ打線に並ぶ姿を想像してみてほしい」 [冬月記者★]
- 中国「高市が謝罪しなければ、ハニトラに引っかかった日本の政治家を公表する」 [804169411]
- 【実況】博衣こよりのえちえちカービィのエアライダー🧪★2
- (´・ω・`)もう寝るね
- 最近気付いたんだけど俺肉の味じゃなくて塩味と食感で米食ってた
- 福岡でミカンの木に逆さ吊りの死体😨 [369521721]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
