欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

shell 变量 传递到 传入 applescrit osascript 文心一言 chatgpt 有大用 有大大用 有大大大用

shell 变量 传递到 applescrit osascript   OK 

要在Shell脚本中将变量传递给AppleScript,可以使用osascript命令。osascript命令允许您在Shell脚本中执行AppleScript代码。

以下是一个示例,演示如何将Shell变量传递给AppleScript:

bash复制代码

#!/bin/bash  



# 定义Shell变量  

name="John Doe"  



# 使用osascript命令将变量传递给AppleScript  

osascript -e "set myVar to \"$name\"" -e "display dialog myVar"
$local_ip="192.168.0.1"
(/usr/bin/osascript -e  "set local_ip to \"$local_ip\"" -e "
display dialog local_ip  ")
(/usr/bin/osascript -e "set local_ip to  \"$local_ip\" "  -e  'display dialog local_ip & "\nFTP服务器网络不通,请联系AAA或BBB" buttons {"OK"}  default button "OK" ')

在上面的示例中,name是一个Shell变量,它被传递给AppleScript代码。在AppleScript代码中,我们使用set命令将Shell变量赋值给一个新的AppleScript变量myVar。然后,我们使用display dialog命令显示一个对话框,其中包含传递的变量的值。

请确保您的系统中安装了AppleScript支持,以便能够使用osascript命令。


shell 变量两个多个变量传递到 applescrit osascript     OK 

如果您希望通过AppleScript从shell脚本传递多个变量到AppleScript,您需要确保您正确地传递了这些变量。以下是一个简单的例子来说明这一点:

  1. 假设您有一个shell脚本,该脚本将传递两个变量到AppleScript。

shell_script.sh

bash复制代码

#!/bin/bash  



# 定义两个变量  

var1="Hello"  

var2="World"  



# 调用AppleScript并传递变量  

osascript -e 'on run argv  

   set var1 to item 1 of argv  

   set var2 to item 2 of argv  

   display dialog var1 & " " & var2  

end run' "$var1" "$var2"

在这个shell脚本中,我们定义了两个变量var1var2,然后使用osascript命令调用AppleScript,并将这两个变量作为参数传递。

  1. 运行这个shell脚本:

bash复制代码

chmod +x shell_script.sh

./shell_script.sh

当您运行这个脚本时,您应该会在屏幕上看到一个弹出窗口显示“Hello World”。

这就是如何从shell脚本传递多个变量到AppleScript。您可以根据需要修改此示例来适应您的特定需求。



shell 变量两个多个变量传递到 applescrit osascript     OK 

要在 shell 脚本中传递多个变量给 osascript,并使用这些变量在 AppleScript 的 display dialog 中显示信息,你需要将这些变量作为参数传递给 osascript,并在 AppleScript 中正确地引用它们。这里有一个例子:

假设你有以下的 shell 脚本(名为 shell-script.sh):

bash
#!/bin/bash # 定义一些变量 var1="Hello" var2="World" # 将变量传递给 osascript,并用 AppleScript 显示对话框 osascript -e "tell app \"System Events\" to display dialog \"$var1, $var2!\""      #这个行,

osascript -e "display dialog \"$var1, $var2!\""             #这个也行,



在这个脚本中,我们定义了两个变量 var1var2,然后将这两个变量的值通过 $var1$var2 传给了 osascript 命令的 -e 参数。在 AppleScript 部分,我们使用双引号将整个字符串括起来,这样 shell 变量就会被替换为它们的值。

运行这个脚本时,它会弹出一个对话框,显示 "Hello, World!"。

请注意,在实际应用中,你可能需要根据你的具体需求来调整 shell 脚本和 AppleScript 的部分。例如,如果你需要从用户那里获取输入或者执行更复杂的逻辑,那么你可能需要扩展这个示例。


下面是自己亲自做的 OK OOK  有大用 有大大用

str="mac: ${mac},ip:${ip}"

str1="mac1: ${mac1},ip1:${ip1}"

(/usr/bin/osascript -e "display dialog \"$str \\n$str1\" buttons {\"OK\"}   default button \"OK\" "   )



下面也是自己亲自做的  OK OOK  有大用 有大大用

#!/bin/bash

#

host=192.168.0.24

port=22


local_ip=`ifconfig | grep 192 | cut -f2 -d' '`

local_ip="本机ip ${local_ip}"

echo $local_ip


ping -c 1 -W 2000 10.54.2.2

if [ $? != 0 ];then

  echo "没有网络,请检查"

  (/usr/bin/osascript -e  'display dialog "没有网络,请检查" buttons {"OK"}  default button "OK" ')

  exit 0

fi


nc -zvv $host $port

if [ $? != 0 ];then

  echo "${local_ip}\nFTP服务器网络不通,请联系AAA或BBB"

  (/usr/bin/osascript -e  "display dialog \"${local_ip}\nFTP服务器网络不通,请联系aaa或bbb\" buttons {\"OK\"}  default button \"OK\" ")

  exit 0

fi


username=$(/usr/bin/osascript -e 'display dialog "请输入帐号" default answer "" with icon note buttons { "Continue"} default button "Continue"

    set result1 to result

    set the text_data to text returned of the result

    set the button_data to button returned of the result1

    if button_data = "Cancel" then

      return ""

    end if

    return text_data')


password=$(/usr/bin/osascript -e 'display dialog "请输入密码" default answer "" with icon note buttons { "Continue"} default button "Continue"

    set result1 to result

    set the text_data to text returned of the result

    set the button_data to button returned of the result1

    if button_data = "Cancel" then

      return ""

    end if

    return text_data')


/usr/bin/expect   <<EOF

set timeout 4

spawn /usr/bin/sftp  -P $port $username@$host


expect {

  "yes/no" { send "yes\r"; exp_continue}

  "password:" { send "$password\r"}

}

expect {

    "sftp>" { send "bye\r" ;expect eof;exit 0}

}

expect {

  #"password:" {  send "\003";expect eof;}

  "password:" {expect eof ; exit 1}

}

EOF

result=$?

if [ $result = 0 ];then

  (/usr/bin/osascript -e  'display dialog "${local_ip}\n1)用户名密码正确\n2)密码在有效期内\n3)客户端ip地址已绑定到FTP服务器" buttons {"OK"}  default button "OK" ')

else

(/usr/bin/osascript -e  "set local_ip to \"$local_ip\"" -e "

display dialog local_ip  ")

(/usr/bin/osascript -e  'display dialog "用户名密码不对\n或者密码过期\n或者客户端ip地址未绑定到FTP服务器\n请联系AAA或BBB" buttons {"OK"}  default button "OK" ')

fi 



shell 传递 多个 变量到 osascript      NOT  OK  

如果你想通过shell脚本传递多个变量给osascript来显示一个对话框(例如,在macOS中),你可以这样做。

以下是一个简单的例子,其中我们有一个shell脚本,它接受两个参数,并使用osascript显示一个包含这两个参数的对话框:

bash复制代码

#!/bin/bash  



# 你的函数,它使用osascript显示对话框  

function show_dialog() {

osascript -e 'display dialog' "$1" &

# 如果你想显示多个参数,可以使用如下的方式:  

# osascript -e 'display dialog' "$1" "$2" &  

}



# 调用函数并传递参数  

show_dialog "这是第一个参数" "这是第二个参数"

在这个例子中,我们定义了一个名为show_dialog的函数,它接受两个参数。然后,我们使用osascript-e选项来执行AppleScript代码,该代码会显示一个对话框。

你可以根据需要调整这个脚本,例如,添加更多的参数或修改对话框的内容。




shell 传递 多个 变量到 osascript    NOT  OK

在 shell 脚本中,你可以使用以下方法将多个变量传递给 osascript(AppleScript 的命令行接口):

  1. 使用位置参数   NOT  OK  在 shell 脚本中,你可以在命令行中直接列出要传递的变量。然后在 AppleScript 中使用 {} 来获取这些参数。

     

    示例:

    bash
    #!/bin/bash var1="Hello" var2="World" osascript -e 'display alert "Message: {}" buttons {"OK"} default button 1 with title "{}"' -- $var1 "$var2"

    这里,$var1$var2 分别被替换为 "Hello" 和 "World",然后传递给 AppleScript。

  2. 使用环境变量   NOT  OK 你也可以通过设置环境变量来传递变量,并在 AppleScript 中使用 environment variable 关键字来访问它们。

     

    示例:

    bash
    #!/bin/bash var1="Hello" var2="World" export VAR1="$var1" export VAR2="$var2" osascript -e 'display alert "Message: " & (environment variable "VAR1") & " " & (environment variable "VAR2") buttons {"OK"} default button 1 with title "Title"'
  3. 使用临时文件   NOT  OK 如果变量内容复杂或者包含特殊字符,可以考虑先将变量内容写入一个临时文件,然后在 AppleScript 中读取这个文件的内容。

     

    示例:

    bash
    #!/bin/bash var1="Hello" var2="World" tmpfile=$(mktemp /tmp/scriptinput.XXXXXX) echo "$var1" > "$tmpfile" echo "$var2" >> "$tmpfile" osascript -e 'set var1 to (read POSIX file "/tmp/scriptinput.XXXXXX" as text)' \          -e 'set var2 to (read line 2 of POSIX file "/tmp/scriptinput.XXXXXX" as text)' \          -e 'display alert "Message: " & var1 & " " & var2 buttons {"OK"} default button 1 with title "Title"' rm "$tmpfile"

请根据你的实际需求选择合适的方法来传递变量。注意,不同的方法可能需要处理不同类型的转义和引用问题。








shell 传递 多个 变量到 applescript

要将多个变量传递到AppleScript脚本中,您可以使用-e标志将脚本作为参数传递给osascript命令,并在脚本中使用on run argv来获取Shell变量。

以下是一个示例:

Shell脚本:

shell

#!/bin/bash var1="Hello" var2="World" result=$(osascript -e "on run argv    set var1 to item 1 of argv    set var2 to item 2 of argv    set output to var1 & \" \" & var2    return output end run" " var1" " var2") echo "输出结果:$result"

在这个示例中,Shell脚本定义了两个变量var1var2,然后使用osascript命令将AppleScript作为参数传递给on run argv函数来执行脚本并获取结果。

在AppleScript脚本中,使用on run argv来获取Shell传递的参数,然后将参数分配给var1var2变量,并将它们拼接到output变量中。

执行Shell脚本后,将变量var1var2传递给AppleScript脚本,并将结果打印出来。

当在AppleScript中使用Shell变量时,可以在on run argv的逻辑中使用set命令将Shell变量分配给AppleScript的变量。




普通分类: