きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

システム名とシェル

命名規則次第なんだが、
システム名の一部をデータセット名や
USSのパスに含む時、
それをどうやって解決するのがいいかという考察。


これはJavaだったらJZOSでシステムシンボルから取る方法がある。
今回はシェルでやる方法の話。


ホスト名はきっとシステム名だ。
その前提が成立する場合、
hostname | cut -c 開始位置:終了位置
というのでシステムの違いを表す部分を取り出せる。

自分の.profileは、
DB2のデータセットをexport STEPLIBしていて、
そのデータセット名のシステム差異を
この方法で吸収している。



重ねて言うがこれは命名規則があってこその話だ。
Linuxではそんな名前の付け方はしない。


あるシェルをz/OSでもLinuxで動かしたい場合、unameでOS判定して、z/OSの場合は命名規則がある前提でやる感じになるだろう。

しかし、z/OSとLinuxでは、unameのオプションに差異がある。
Linuxであれば、-oでOSの名称が取れるが、z/OSでは-oが無い。
これz/OSが悪いというわけではなく、UnixLinuxの違い。
まあ、-sで判定すればいい。