Скрипт оболонки, щоб перевірити, чи існує файл у домі користувача


2

Я хочу перевірити, чи є у будинку користувача на OS X файл environment.plist в .MacOSX і якщо цей файл існує, додайте до нього нові значення ключа.

Але якщо він не існує, то створіть цей файл з новими значеннями ключів. Я новачок у OS X, тому я не знаю, як отримати домашню користувача і виконати ці перевірки, один з моїх друзів сказав мені, що я можу зробити це, написавши скрипт оболонки.

Просимо мене про це.

Відповіді:


4

Редагування файлу вручну

Зауважте, що ви завжди можете просто зайти в термінал і написати:

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

і відредагуйте файл, якщо це те, що ви намагаєтеся зробити . Рекомендується використовувати власний редактор списку властивостей Apple.app, який поставляється разом Xcode 3 . Звичайно, є й інші редактори з підтримкою 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

Цей скрипт створить файл, якщо він вже не існує, а потім додає до нього дві змінні. Їх імена Variable1 і Variable2відповідно їх значення і є Value1 і Value2.

Якщо файл вже існує, змінні та значення просто додаються.

Скопіюйте цей код, вставте його у файл з ім'ям, наприклад, script.sh. Збережіть його до домашньої папки. Відкрийте термінал, а потім запустіть

chmod +x script.sh

Тепер ви можете запустити його з ./script.sh і це створить environment.plist файл.

Якщо потрібно видалити plist знову введіть файл

rm ~/.MacOSX/environment.plist

Папка залишиться, але це не проблема.


Він хоче додати цінності якщо вона існує . я пропоную /usr/libexec/PlistBuddy для того.
Daniel Beck

Дякуємо за пропозицію редактора plist, але я хочу зробити це з сценарію оболонки. Було б корисно, якщо ви могли б також допомогти мені в модифікації існуючого plist, як я не знаю складності сценарію.
Sandy

@Daniel Ах, вірно. Оновлено :) @Sandy Я відредагував свою відповідь для використання PlistBuddy як запропонував Даніель. В основному це лише додає змінні і створює файл, якщо це необхідно. Що ще потрібно?
slhck

@Sandy slhck відповів на ваш коментар. (slhck: я думаю, що це все ще одна @notification per comment)
Daniel Beck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.