我想知道在AppleScript中是否可以转义控制字符并输入一串文本。例如,AppleScript是否支持十六进制转义码?如果是这样,怎么样? (我用Google搜索但没有发现任何内容,抱歉,如果这是一个微不足道的问题。)
对于某些任务,我想向iTerm2写一个^D
(\x04
)来表示stdin的结束。这是我的剧本的骨架:
#!/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
,有没有更好的方法?欢迎任何建议。
答案 0 :(得分:2)
在Mac OS X 10.5及更高版本中,使用"字符ID",例如:
set ctrlD to character id 4
该数字应对应于字符的Unicode代码点值,对于字符0-127,该值与其ASCII值相同。
在10.4.11及更早版本中,使用" ascii character",例如:
set ctrlD to ascii character 4
该数字应为该字符的ASCII值。自Mac OS X 10.5以来,Apple已弃用此表单,但仍然适用于OS X 10.10.1。
然后你应该能够治疗" ctrlD"像任何其他字符串。 Haven并没有特别尝试使用iTerm,但如果问题是如何将不可打印的字符变成AppleScript字符串,那么就是这样。
答案 1 :(得分:1)
要发送命令,您可以:
tell application "System Events" to key code 2 using {shift down, Control down}