タグ付けされた質問 「portability」


4
Linuxでポータブルmp3プレーヤーがうまく機能するのはなぜですか?
私は新しいポータブルmp3プレーヤーの市場に出ており、主にLinuxボックスに接続しますが、場合によってはWindows Vistaマシンにも接続します。すぐに使えるLinuxサポートを提案する音楽プレーヤーで、どのような品質を探しているのか疑問に思っています。私のiPodを一貫してLinuxでうまく動作させるのに苦労してきたので、ネイティブLinuxのより良いサポートを提供する何かを見つけられることを望んでいます。 これまでの検索でいくつかのことに気づきました。 Ogg Vorbisサポートと「Linux Compatible」は非常に相関しています Linux Compatibleは、多くの場合、「データ転送のみのサポート」などの認定を受けています。 これらは私が従うことができる唯一の手がかりですか?何を探すべきか、それを正しく行う製品の例についてアドバイスをいただければ幸いです。

3
/ dev / stderrと>&2への出力の送信
スクリプトでは、エラーは通常、を使用してファイル記述子2に送信されます&2。つまり、 echo "error" >&2 時には/dev/stderr代わりに使用されます: echo "error" > /dev/stderr 見て/dev/stderr、私はそれが唯一のシンボリックリンクであることがわかり/proc/self/fd/2順番にへのシンボリックリンクである、/dev/pts/5(私の現在の端末上)。 少し複雑に見えます。その背後にいくつかのロジックがありますか? を使用/dev/stderrして&2同等ですか? 他のものよりも好ましいものはありますか?

1
別のLinuxマシンへの実行可能ファイルの移植性
Linuxマシン(M1)にモーションプログラムをインストールし、別のマシン(M2)に同じプログラムをインストールします。 このプログラムにはさまざまなビルドがあり、どれを使用したか忘れてしまいました。M1からuser / bin / motionファイルを直接コピーして、M2のuser / bin / motionに配置できますか? 構成ファイルの場所がわかっているので、それを横切って移動しますが、M2で動作バージョンのモーションが使用しているビデオドライバーがどれなのかはわかりません。見つける方法はありますか? 依存関係を見つける方法はありますか?

3
stat:ファイルの変更タイムスタンプ
私はstat -f %m .bashrcosx上の.bashrcの変更時間を取得するために使用しています。しかし、ubuntuで同じコマンドを実行すると、エラーが発生します。 stat: cannot read file system information for %m': No such file or directory これを達成するための互換性のある方法はありますか?


5
普遍的な非bashの「時間」ベンチマークの代替?[閉まっている]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 3年前休業。 異なるシェル間でスクリプトの実行時間を比較するために、一部のSEの回答は、次のようにbashの組み込み timeコマンドの使用を提案しています。 time bash -c 'foo.sh' time dash -c 'foo.sh' ... など、すべてのシェルをテストします。このようなベンチマークでは、各シェルがそれ自体をロードして初期化するのにかかる時間を排除できません。例えば、上記のコマンドの両方が上に格納されたと仮定初期フロッピーディスクの読み出し速度と遅いデバイス、(124キロバイト/秒)、 dash(〜150K実行)についてロードする7Xより速くbash(〜1M)、シェル読み込み時間はtime数値を歪めます-これらのシェルの事前読み込み時間は、シェルが読み込まれた後のfoo.sh各シェルの下の実行時間の測定には関係ありません。 各シェル内から実行できるスクリプトタイミング用に実行するのに最適なポータブルで一般的なユーティリティは何ですか?したがって、上記のコードは次のようになります。 bash -c 'general_timer_util foo.sh' dash -c 'general_timer_util foo.sh' 注意:移植性や汎用性がないため、シェル組み込み timeコマンドはありません。 さらに、utilがシェルの内部コマンドとパイプラインにかかる時間をベンチマークでき、ユーザーが最初にそれらをスクリプトにラップする必要がない場合はさらに良いでしょう。このような人工的な構文は役に立ちます: general_timer_util "while read x ; do echo x ; done < foo" 一部のシェルtimeはこれを管理できます。たとえばbash -c "time while false ; do : ; done"動作します。システムで何が機能するか(そして機能しないか)を確認するには、次のことを試してください。 …

5
プログラムでawkフレーバーを検出する方法(gawkとnawkなど)
私は基本的にbashシェルスクリプトのコレクションであるコマンドラインアプリケーションを使用しています。アプリケーションは、BSD / OSXおよびLinuxで実行するように作成されました。スクリプトの1つはawkに依存しています。これには2つのawkコマンドが含まれています。1つはnawk(標準のBSD awk実装)用に記述され、もう1つはgawk(GNU awk実装)用に記述されています。 問題の2つのawkコマンドは、異なる環境との互換性がありません。特に、gawkで実行するとnawkコマンドが失敗します。スクリプトは、uname -sホスト環境を判別するためにカーネル名(つまり)をチェックし、適切なawkコマンドを実行します。ただし、GNUコアユーティリティがインストールされたMac OS Xで作業することを好むため、スクリプトは正しく実行されません。 このバグを修正する最善の方法を考える過程で、できれば比較的堅牢で移植性のある方法で、一般的なコマンドラインユーティリティの異なるフレーバーをプログラムで区別する方法を知っておくとよいと思いました。 nawkがバージョン情報を出力するための「-V」フラグを受け入れないことに気付いたので、次のようなものが機能するはずだと考えました。 awk -V &>/dev/null && echo gawk || echo nawk 別のバリエーションは次のとおりです。 awk -Wversion &>/dev/null && echo gawk || echo nawk これは私の2つのテスト環境(OS XとCentOS)で動作するようです。ここに私の質問があります: これは最善の方法ですか? これを拡張してawkの他のバリエーション(例:mawk、jawkなど)を処理する方法はありますか? awkの他のバージョンについても心配する価値がありますか? また、私はawkについてほとんど知らないことも述べておきます。

2
ドル括弧の拡張をサポートせず、バッククォートを要求するシェルはどれですか?
最新の推奨事項は、次のものを使用することです。 $(...) 古いの代わりに: `...` 主に読みやすさとネスティング時にエスケープする必要性を回避するためです。 $(...)フォームをサポートしていないシェルはどれですか。また、現在も使用されているシェルはありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.