2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【POSIX】 sh系互換 シェルスクリプトスレ

1 :デフォルトの名無しさん:2018/08/25(土) 20:05:12.00 ID:A3V5N+C6.net
sh系シェルスクリプトに関する総合スレッドです。
sh系とは bash, zsh, ksh, (d)ash, yash, posh, fish, (t)csh)などを指します

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。

2 :デフォルトの名無しさん:2018/08/25(土) 20:06:08.85 ID:A3V5N+C6.net
お約束
・Bourne ShellもしくはPOSIX準拠のsh可換シェル専用です
 つまりシバンは#! /bin/shです。
 特定のシェル(bash, zsh, ksh, (d)ash, yash, posh, fish, (t)csh)などの専用機能に依存する場合は明示しましょう。
  OS X, GNU/Linuxユーザーは/bin/shの実体がbashなので*特に*注意(自覚なきbashism---シバンが#!/bin/shなのにbashに依存する構文を使っていませんか?)。
   ただしDebian, Ubuntuなどでは/bin/shの実体はPOSIX sh互換のdashですのであまり気にしないでも大丈夫です。
  FreeBSDユーザーは/bin/shの実体がashなので注意。
  Solaris, OpenBSDユーザーは/bin/shの実体がkshなので注意。
 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オプションでそれらしい単語による簡単な検索もできます。
・ワイルドカードは正規表現ではありません。
 正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆうな

3 :デフォルトの名無しさん:2019/08/10(土) 02:11:36.36 ID:x0rFB4wI.net
POSIX準拠で対応できない場合はどうする?
POSIXコマンド以外を使う場合、可搬性はどのようにして保つ?

4 :デフォルトの名無しさん:2019/08/11(日) 00:04:32.01 ID:GFStkW/c.net
POSIX以外のコマンドで同等の処理ができるなら、
そのコマンド(のいずれか)を使う。
場合によってはラッパー関数とか作って違いを吸収したり。

最悪の場合、POSIX準拠できない部分だけ
ネイティブバイナリしてコマンドで呼び出すとか

総レス数 4
3 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★