Debianから他のディストリビューションへのNixの組み込みコマンド/コマンド(echo、ps、sort、uniq)はどのくらい安定して移植性がありますか?

Debianから他のディストリビューションへのNixの組み込みコマンド/コマンド(echo、ps、sort、uniq)はどのくらい安定して移植性がありますか?

私はスクリプトを書いていますが、それがどれだけ安定して移植可能かを知りたいです。

#!/bin/bash
threadsPlease() {
  ps -mo lwp,c -p $1 | sort -gk 2 | uniq -f 1 
}

THREAD_LINE=$( threadsPlease $1 | grep -v - | tail -1)

THREAD10=$(echo $THREAD_LINE | awk '{print $1}')
THREAD16=$(printf '%x\n' $THREAD10)

JAVA_LINE=$(jstack $1 | grep $THREAD16)
echo "OS data (thread, CPU usage %): " $THREAD_LINE
echo "Java thread: " $JAVA_LINE

スクリプトは、Java PID が指定されたシステムおよび Java スレッド・データを表示します。実行例:

./whichThreadIsIt.sh 6814
OS data (thread, CPU usage %):  6838 3
Java thread:  "AWT-EventQueue-0" #19 prio=6 os_prio=0 tid=0x00007f50f4090800 nid=0x1ab6 waiting on condition [0x00007f510dfbb000]

Q1:明らかなもの(「jstack / java / awk / ...が利用できないか、パスにありません」または「間違った入力データが提供されました」)に加えて、これが期待どおりに機能しない場合(Ubuntu / Debian)はいつですか?

質問2:私の友人は、「シェルスクリプトよりもシェルを移植する方が簡単です」と言います。それでは、Fedora / CentOS、Free BSD、およびSolarisでこれを達成するにはどれくらいの労力が必要ですか?スムーズに実行されると期待するのは間違っていますか(Bashがこのボックスに存在すると仮定)

ベストアンサー1

#!/usr/bin/env bash

一般的bashに。/usr/local/bin/bashenv

ps特にSysVシステム(Solarisなど)でBSD / GNUismを使用したい場合は、特に移植できないコマンドです。 1つの解決策は、GNUツールをどこかにインストールし、それを含めるようにPATHを変更することです。

おすすめ記事