如何在applescript do shell脚本中传递两个以上的变量?

如何在applescript do shell脚本中传递两个以上的变量?,applescript,sh,Applescript,Sh,我试过这个: do shell script "curl -A " & quoted form of useragent & " quoted form of urlst" do shell script "curl -A " & quoted form of useragent & quoted form of urlst 然而,这认为urlst的引用形式是shell脚本 我也试过: do shell script "curl -A " & q

我试过这个:

do shell script "curl -A  " & quoted form of useragent & " quoted form of urlst"
do shell script "curl -A  " & quoted form of useragent & quoted form of urlst
然而,这认为urlst的
引用形式是shell脚本

我也试过:

do shell script "curl -A  " & quoted form of useragent & " quoted form of urlst"
do shell script "curl -A  " & quoted form of useragent & quoted form of urlst
但是现在它只是说没有指定URL,所以它无法读取变量


如何解决此问题?

简短回答您应该做的是:

do shell script "curl -A  " & quoted form of useragent & space & quoted form of urlst

shell具有处理文本的独特方式。通常,bash读取数据直到它遇到分隔符(默认值:空格、制表符或返回)。引号是一个开关,用于打开或关闭剩余数据的解释方式。当它读取报价时,它会打开或关闭其替换模式。启用时(默认情况下),特殊字符保留其含义,禁用时,特殊字符完全没有含义。所以
“你好,世界!”和<代码>你好''世界
在bash中是相同的字符串,因为只有空格是一个特殊字符,其中第一个引号关闭替换,第二个引号重新打开替换。在到达行尾之前,需要再次打开替换模式,以便找到行尾。在您的案例中,字符串
'safari'
后跟
'http://www.stackoverflow.com“
将被视为一个完整的字符串。因此,当向bash传递多个参数时,需要确保在启用替换模式时,它被空格分隔

简而言之,你应该做的是:

do shell script "curl -A  " & quoted form of useragent & space & quoted form of urlst
shell具有处理文本的独特方式。通常,bash读取数据直到它遇到分隔符(默认值:空格、制表符或返回)。引号是一个开关,用于打开或关闭剩余数据的解释方式。当它读取报价时,它会打开或关闭其替换模式。启用时(默认情况下),特殊字符保留其含义,禁用时,特殊字符完全没有含义。所以
“你好,世界!”和<代码>你好''世界
在bash中是相同的字符串,因为只有空格是一个特殊字符,其中第一个引号关闭替换,第二个引号重新打开替换。在到达行尾之前,需要再次打开替换模式,以便找到行尾。在您的案例中,字符串
'safari'
后跟
'http://www.stackoverflow.com“
将被视为一个完整的字符串。因此,当向bash传递多个参数时,需要确保在启用替换模式时,它被空格分隔