web-dev-qa-db-ja.com

ファイルがユーザーホームに存在するかどうかを確認するシェルスクリプト

OSXのユーザーホームにファイルがあるかどうかを確認したいenvironment.plist in .MacOSXフォルダー。このファイルが存在する場合は、いくつかの新しいキー値を追加します。

ただし、存在しない場合は、新しいキー値を使用してこのファイルを作成します。私はOSXを初めて使用するので、ユーザーを家に帰してこれらのチェックを実行する方法がわかりません。友人の1人が、シェルスクリプトを作成することでこれを実行できると言いました。

これについて教えてください。

2
Sandy

ファイルを手動で編集する

いつでもターミナルにアクセスして次のように書くこともできます。

mkdir -p ~/.MacOSX
touch ~/.MacOSX/environment.plist
open ~/.MacOSX/environment.plist

それがあなたがやろうとしていることです の場合、それに応じてファイルを編集します。 Xcode に付属しているApple独自のプロパティリストEditor.appを使用することをお勧めします。確かに、plistファイルをサポートする他のエディターもありますが、今は思い出せません。

必要に応じて、open ~/.MacOSX/だけで、正しい形式を維持している限り、他のテキストエディタでplistファイルを開くこともできます。


シェルスクリプトを使用

しかし、あなたの質問では、あなたはそのような何かを求めました:

#!/usr/bin/env bash    
FILE=~/.MacOSX/environment.plist
PLIST=/usr/libexec/PlistBuddy

# if the file doesn't exist, try to create folder
if [ ! -f $FILE ]
then
  mkdir -p ~/.MacOSX
fi

# then just add entries (file will be created if it doesn't exist)
$PLIST -c "Add :Variable1 string 'Value1'" $FILE
$PLIST -c "Add :Variable2 string 'Value2'" $FILE

このスクリプトは、ファイルがまだ存在しない場合はファイルを作成し、それに2つの変数を追加します。それらの名前はそれぞれVariable1Variable2であり、それらの値はValue1Value2です。

ファイルがすでに存在する場合は、変数と値が追加されるだけです。

このコードをコピーして、たとえばscript.shという名前のファイルに貼り付けます。ホームフォルダに保存します。ターミナルを開き、実行します

chmod +x script.sh

これで、./script.shを使用して実行でき、environment.plistファイルが作成されます。

plistファイルを再度削除する場合は、次のように入力します。

rm ~/.MacOSX/environment.plist

フォルダは残りますが、それは実際には問題ではありません。

4
slhck