シェルスクリプト総合 その23at UNIX
シェルスクリプト総合 その23 - 暇つぶし2ch19:名無しさん@お腹いっぱい。
14/07/02 00:29:19.31
>>7
誰もメンテできなくなったVBやCOBOLやExcelの
資産()を見てもそう思えるんなら、才能ないから
コンピュータから手を引いたほうがいい。

20:名無しさん@お腹いっぱい。
14/07/02 00:48:45.98
bash を使うなとは言わんけど、bash でしか動かんものは
#! 行でそうと宣言しておいてほしい。
つーか、#!/bin/sh と書かれていたら
bash の独自拡張はぜんぶエラーにしてほしいんだが。
man によると sh という名前で起動されると POSIX 互換モードになるらしいけど、
あいかわらず bash 拡張がふつーに使えて違いがさっぱりわからん。

21:名無しさん@お腹いっぱい。
14/07/02 00:59:50.16
trapとセットでよく使うmktempとか結構システムによって挙動ちがうけど、純粋シェル道的にはどうやって実装するの?

22:名無しさん@お腹いっぱい。
14/07/02 04:30:46.92
>>20
ここに書けばエラーレスが出るよ。

23:名無しさん@お腹いっぱい。
14/07/02 05:59:05.00
>>20
bash で #!/bin/sh と書いたら、プロセス置換 <(command) とかが使えなくなるという違いはある。

24:名無しさん@お腹いっぱい。
14/07/02 15:49:33.90
>>20
Bourne Shellを自分で入れるのが一番良いかもね

25:名無しさん@お腹いっぱい。
14/07/03 15:20:26.48
>>20
例えばLinuxのDebian系ディストリだと
そのために拡張控えめな dash (Debian版ash) があったりするね

26:名無しさん@お腹いっぱい。
14/07/03 15:31:45.75
同じbashでも、#!/bin/shと書いて起動するとその動作モードが変わるという話をしてるんだけどね。
zshでも動作は変わる。が、ash(dash)は#!/bin/shと書いても#!/bin/ashと書いても何も変わらない。

27:名無しさん@お腹いっぱい。
14/07/03 15:47:52.68
>>20>>26
たぶんPOSIX準拠でエラーのないスクリプトが正常動作する程度の機能なんだろう。
最低限それやっとかないとPOSIX準拠のシェルとして採用してもらえなくなるから。

厳密にPOSIX準拠で拡張ゼロのシェルを内部に別途実装するとか無駄だから、
そういう要望はBourne Shell入れてそっちでやってくれってスタンスなんじゃね?

28:名無しさん@お腹いっぱい。
14/07/03 16:06:37.72
今後新しいシェルが出てきて乗り換えた時に、書き溜めたスクリプトが動くと嬉しいので、互換性指摘は嬉しい。
ただ、その時々によって必要性が違うので無視するかも。
つまり、互換性指摘はWarningということだ。

29:名無しさん@お腹いっぱい。
14/07/03 16:34:16.07
シェルスクリプトってインタプリタ言語だしWarning出さずにError出すイメージ

30:名無しさん@お腹いっぱい。
14/07/03 16:45:14.94
何その勝手なイメージは

31:名無しさん@お腹いっぱい。
14/07/03 18:24:18.78
お前の勝手なイメージを押し付けるな!

32:名無しさん@お腹いっぱい。
14/07/03 18:59:57.41
× イメージ
○ イミッジ

これを間違えると日本人と思われて馬鹿にされるので気を付けるようにw

33:名無しさん@お腹いっぱい。
14/07/04 00:34:23.82
× アイディア
○ アイデア

34:名無しさん@お腹いっぱい。
14/07/04 00:44:50.44
日本人ってだけでバカにするのはアレな国の人だけだと思う

35:名無しさん@お腹いっぱい。
14/07/04 10:39:04.06
checkbashism使ってみるのはどうか。
URLリンク(alioth.debian.org)
PerlスクリプトなのでDebian以外でも普通に動くはず。

36:名無しさん@お腹いっぱい。
14/07/04 11:07:46.65
>>35
使ってみたことあるけどBourne shとの互換性チェックには全然ならないよ。

37:名無しさん@お腹いっぱい。
14/07/04 11:13:37.98
ポータブルなスクリプトがデフォなのは賛成だが、
デフォが Bourne shell ( 商用 UNIX 等で生き残っている
Traditional Bourne shell と解釈しています ) とするのは反対

前から思っていましたが、多くの環境でわざわざインストールしないと使えない
Bourne shell にこだわる必要性は、少ないと思う

皆さんが、ポータブル性は POSIX 相当でも OK なら、こんな風にしたい

□お約束
・特記なき場合は #!/bin/sh がデフォルトです。この場合、ポータビリティーに注意し
 Traditional Bourne Shell もしくは、POSIX 相当のスクリプトでお願いします。
 bash/zsh/ksh/ash/dash などに依存する場合は明示しましょう。

38:名無しさん@お腹いっぱい。
14/07/04 11:20:56.93
その辺はスレ立てる人が勝手に決めてるだけだから
次スレ自分で立てればいいよ。

39:名無しさん@お腹いっぱい。
14/07/04 11:24:28.11
今回立てた時に、やはり了承を得てからと思って、コピペにしました

本当は、>>7 の言うことも納得で、
> □回答者への注意事項:
も消したかった


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch