シェルスクリプト総合 その31at TECHシェルスクリプト総合 その31 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト2:デフォルトの名無しさん 19/08/10 23:19:50.86 L+B8OP2P.net お約束 ・特記なき場合、POSIX 準拠の sh 可換シェルが既定です。(Bourne Shellは既にレガシーです) つまりシバンは #!/bin/sh です。 特定のシェル(bash, zsh, (m|pd)ksh, (d)ash, yash, posh, fish, (t)csh など)の専用機能に依存する場合は明示しましょう。 macOS (10.14以前), GNU/Linux ユーザー(Debian, Ubuntu 系以外) は /bin/sh の実体が bash なので*特に*注意 自覚なき bashism---シバンが #!/bin/sh なのに bash に依存する構文を使っていませんか? ただし Debian, Ubuntu などでは /bin/sh の実体は POSIX sh 互換の dash ですのであまり気にしないでも大丈夫です。 FreeBSD ユーザーは /bin/sh の実体が ash なので注意。 Solaris, OpenBSD ユーザーは /bin/sh の実体が ksh なので注意。 macOS 10.15以降のユーザーは/bin/sh の実体が zsh なので注意。 android ユーザーは /bin/sh の実体が mksh なので注意。 csh/tcshでのシェルスクリプトは*まったく推奨しません*。 (参考URL: http://www.speech-lab.org/~hiroki/csh-whynot.euc) ・POSIX に準拠しましょう 有用なリンクは https://en.wikipedia.org/wiki/POSIX にまとめられています。 最新の仕様はこちらへ: http://pubs.opengroup.org/onlinepubs/9699919799/ (左上の「Shell & Utilities」から各コマンドやファイルの仕様を参照することができます) ・Version 7 UNIX の sh(1) に一番近いのは OpenSolaris 由来の Heirloom sh、次点で Debian などに搭載されている Dash shell Heirloom sh: http://heirloom.sourceforge.net/sh.html Dash shell: http://gondor.apana.org.au/~herbert/dash/ ・UNIX にはシェルスクリプトに便利な小さなコマンドがいろいろあります Man ページや各種リンク(http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.htmlなど)を見ましょう。 apropos(1) ないしは man(1) の-kオプションでそれらしい単語による簡単な検索もできます。 ・ワイルドカードは正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) ・シェルスクリプトのことをシェルってゆうな 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch