OS X用に作成され、現在Linuxに移植されているbashスクリプトがあります。 Linuxボックスにアクセスできません。 bashスクリプトは、OSXで使用可能なdefaults read
およびPlistBuddy
コマンドを使用して、plistファイルから値を読み取ります。
Linuxマシンにはこれらのコマンドがないため、回避策を探しています。 Linuxマシン上の特定のキーのplistファイルからユーザーが値をフェッチするのに役立つライブラリ/スクリプト(Perlが望ましい)はありますか?
sed
/awk
を使用してみましたが、出力が信頼できません。 plistファイルを他の形式に変換するplutil.pl
のようなスクリプトに出くわしました。
MacにUbuntuを実行する仮想マシンをインストールしたので、実際のLinuxボックスにデプロイする前に変更をテストできます。
.plist
ファイルはすでにXMLです(または簡単に変換できます)。XMLをデコードするために必要なものだけです。
そのためにはxml2
:
$ cat com.Apple.systemsound.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.Apple.sound.beep.volume</key>
<real>1</real>
</dict>
</plist>
$ xml2 < com.Apple.systemsound.plist
/plist/@version=1.0
/plist/dict/key=com.Apple.sound.beep.volume
/plist/dict/real=1
$
あなたは残りを理解することができるはずです。
またはPerlの場合、use XML::Simple;
(詳細はperldoc
を参照)XMLデータ構造をハッシュに入れます。
libplistは要件を満たしているようです。スクリプトで参照できるUbuntuパッケージ名「libplist-utils」があります。
説明-en:Appleプロパティリストコンバーターこのパッケージには、AppleプロパティリストファイルをバイナリからXMLに、またはその逆に変換するためのツールが含まれています。これはlibimobiledeviceの一部です。スタック、iDevice(iPod、iPhone、iPad ...)へのアクセスを提供します。
ホームページ: http://www.libimobiledevice.org/
インストールコマンド:
apt-get install libplist-utils
使用例:
plistutil -i Info.plist