我做了很多涉及许多屏幕截图的演示,我想要一种更简单的方法来按项目组织它们。我正在尝试编写一个简单的函数来更改屏幕截图保存到当前工作目录的位置。
我已经编写了一个函数并将其保存到~/.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
,我就能观察到新捕获的屏幕截图出现在正确的目录中。