Macのdefaultsコマンドを設定する際に
連想配列に入れた値と自作関数を使って1コマンドで値を設定できないかと思って
下記のようなものと作りましたが、
function setdefaults () { local plist=$1 local args=$2 for arg in ${(k)args}; do defaults write $plist $arg $args[$arg] done } local -A args args=( alwaysDisableWithBattery 1 autoModeEnabled 1 ) setdefaults com.hoge.plist $args
うまく動かず以下のエラーが表示されます。
defaults[47361:2115373]
Rep argument is not a dictionary
Defaults have not been changed.
公式サイトのドキュメントを読んだり検索もしてみたのですが、
当たり前すぎるのか、またはzshでは違った
アプローチを取るのか、思ったような情報を見つけることができませんでした。
関数にせず以下のように書けば希望する動きになったので
引数の設定の仕方が悪いのではないかと考えています。
local -A args args=( alwaysDisableWithBattery 1 autoModeEnabled 1 ) for arg in ${(k)args}; do defaults write com.hoge.plist $arg $args[$arg] done }
初歩的な質問だとは思うのですが、
ご存知の方がいらっしゃいましたらお力お借りできれば幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/22 14:35