私は多くのスクリーンショットを含む多くのプレゼンテーションをしていますが、それをプロジェクトごとにまとめるより簡単な方法が欲しいです。現在の作業ディレクトリでスクリーンショットが保存される場所を変更する簡単な関数を作成しようとしています。
関数を作成して~/.my_custom_commands.sh
。
現在のファイルは次のとおりです。
#!/bin/bash
# changes location of screenshot to current directory
function shoothere() {
defaults write com.apple.screencapture location '. '
killall SystemUIServer
echo 'foo'
}
スクリーンショットを保存したいディレクトリに移動して関数を実行すると印刷されますが、foo
スクリーンショットはどこにも表示されません。
私もそれ'. '
をに置き換えて$1
実行しようとしましたが、$ shoothere .
エラーが発生しました。Rep argument is not a dictionary. Defaults have not been changed.
このエラーメッセージをインターネット検索しても何も得られませんでした。
私のMacではMojave 10.14.4を実行しています。
答え1
このわずかに異なる構文は私に適しているようです。.
バックグラウンドで実行されているサービスは、MacOSで正しく処理されない可能性があります。
~/foo $ defaults write com.apple.screencapture location "$(pwd)"
~/foo $ defaults read com.apple.screencapture
{
"last-messagetrace-stamp" = "576625649.15493";
location = "/Users/[redacted]/foo";
}
デフォルト値にリセットするには、次のコマンドを使用できます。
$ defaults delete com.apple.screencapture location
killall SystemUIServer
まったく必要ありません。コマンドを実行するとすぐに、defaults write
新しくキャプチャされたスクリーンショットが正しいディレクトリに表示されることを確認できます。