首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AppleScript:如何转义字符串中的控制字符

AppleScript:如何转义字符串中的控制字符
EN

Stack Overflow用户
提问于 2014-12-19 20:41:27
回答 2查看 2.2K关注 0票数 0

我想知道是否可以转义控制字符,并在AppleScript中插入一串文本。例如,AppleScript是否支持十六进制转义代码?如果是这样的话,是怎么做的?(我在谷歌上搜索了一下,但一无所获,如果这是个微不足道的问题,我很抱歉。)

上下文

对于某些任务,我想编写一个^D (\x04)到iTerm2,以指示stdin的结束。下面是我的剧本的骨架:

代码语言:javascript
运行
复制
#!/usr/bin/osascript
tell application "iTerm"
    create window with default profile
    tell the current window
        tell the current session
            # write some text -- launch an interactive program
            # write some text to stdin, typically from the clipboard

            ##### PROBLEM HERE
            # close stdin -- write text ^D? How to achieve this?
        end tell
    end tell
end tell

我不想使用击键代替,因为这将需要额外的特权。有更好的方法不逃避^D吗?欢迎任何建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-20 20:40:15

在MacOSX10.5及更高版本上,使用“字符id",例如:

代码语言:javascript
运行
复制
set ctrlD to character id 4

数字应该对应于字符的Unicode代码点值,对于字符0-127,与其ASCII值相同。

在10.4.11及更早版本中,使用"ascii字符“,例如:

代码语言:javascript
运行
复制
set ctrlD to ascii character 4

数字应该是字符的ASCII值。苹果从MacOSX10.5开始就不再推荐这种形式了,但从OSX10.10.1开始仍然有效。

然后,您应该能够像对待任何其他字符串一样对待"ctrlD“。还没有在iTerm中进行过专门的尝试,但是如果问题是如何将不可打印的字符输入到AppleScript字符串中,这就是方法。

票数 2
EN

Stack Overflow用户

发布于 2014-12-20 09:16:04

要发送命令,可以:

代码语言:javascript
运行
复制
tell application "System Events" to key code 2 using {shift down, Control down}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27573593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档