Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串中正确的反斜杠定义(macOS默认通过shell写入)_Macos_Shell_Nsdictionary_Nsuserdefaults - Fatal编程技术网

字符串中正确的反斜杠定义(macOS默认通过shell写入)

字符串中正确的反斜杠定义(macOS默认通过shell写入),macos,shell,nsdictionary,nsuserdefaults,Macos,Shell,Nsdictionary,Nsuserdefaults,我正在尝试从终端设置macOS键盘快捷键(ctrl+shift+up\u arrow) 从系统首选项手动创建后,我发现'^$\\U2191'就是我要查找的字符串 因此: 然而,这是我通过运行默认值read com.hello.app NSUserKeyEquivalents得到的: {"Test" = "^$\\\\\\\\U2191";} 为什么每个反斜杠都要重复两次?如何正确地只输入两个反斜杠?对-string参数使用双引号(“)而不是单引号(”): defaults write com.

我正在尝试从终端设置macOS键盘快捷键(
ctrl+shift+up\u arrow

从系统首选项手动创建后,我发现
'^$\\U2191'
就是我要查找的字符串

因此:

然而,这是我通过运行
默认值read com.hello.app NSUserKeyEquivalents
得到的:

{"Test" = "^$\\\\\\\\U2191";}
为什么每个反斜杠都要重复两次?如何正确地只输入两个反斜杠?

-string
参数使用双引号(“)而不是单引号(”):

defaults write com.hello.app NSUserKeyEquivalents-dict add'Test'-string“^$\\u219”

事实证明,对于特殊字符,从cli编辑
plist
文件的唯一方法是包含特殊字符本身

defaults write com.hello.app NSUserKeyEquivalents -dict-add 'Test' -string '^$↓'

我不知道其他键是如何处理的,但在第一次手动创建快捷方式后,这是一种快速获取这些值的好方法。

在大多数基于Posix的语言中,包括在MacOS上使用的语言中,反斜杠是一个保留字符

要让解析器打印反斜杠,需要输入两次反斜杠

一些脚本和实用程序会假定您需要文本打印,并插入双反斜杠来代替反斜杠,以便进行文本打印,而不是查找字符


您需要检查特定工具的文档。通常有一个选项可以关闭此功能。

您是否亲自尝试过此功能?它对我不起作用,单引号/双引号不会改变任何内容。是的。使用单引号时,当您执行
默认值时,请阅读com.hello.app NSUserKeyEquivalents
您会得到
{Test=”^$\U2191”}
。使用双引号插入时,结果是:
{Test=“^$\\\U2191”}
defaults write com.hello.app NSUserKeyEquivalents -dict-add 'Test' -string '^$↓'