Automator wifi 特定备份
Automator wifi specific backup
我想在连接到我的家庭网络时自动 运行 将我 Mac 上的某些文件夹每周备份到云端。
场景:
Check wifi network name
If 'home' then perform backup
else exit
我创建了一个日历事件来触发自动化脚本。
我目前有两个 bash 脚本
- 确定我连接的wifi网络
- 执行备份(使用 rclone)
我纠结的部分是 If、Then 和 else 部分。
Bash 脚本 1:
/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | awk -F: '/ SSID/{print }'
尝试使用 applescript:
on run {input, parameters}
if input is not ("home") then error number -128
return input
end run
Bash 应该 运行 检测家庭网络的脚本:
/usr/local/Cellar/rclone/1.52.1/bin/rclone copy "Source" Remote:folder
两个 bash 脚本都可以工作,但我被困在有条件的部分......非常感谢收到任何帮助。
运行你的命令,我得到以下
❯ /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | awk -F: '/ SSID/{print }'
Home
您会注意到在 Home
之前有一个 tiiiiiiiiny space。正文其实是<space>Home
.
您的问题出在 awk
命令中。
当您将文本 SSID: Home
拆分为 :
时,</code> 变为 <code> SSID
,</code> 变为 <code> Home
。 (再次注意 spaces)。
您对 applescript 的输入正在寻找 Home
。 Home
不匹配 Home
.
注意间距和大小写。
其次,input
是一个list
,不是字符串。所以 input is not ("home")
将始终 运行 因为你将它与字符串进行比较。
如果您想将 input
与 string
进行比较,例如 home
.
,则必须将其类型转换为 string
on run {input, parameters}
if (input as string) is " home" then
tell application "System Events" to display dialog "You are home."
end if
return input
end run
我想在连接到我的家庭网络时自动 运行 将我 Mac 上的某些文件夹每周备份到云端。
场景:
Check wifi network name
If 'home' then perform backup
else exit
我创建了一个日历事件来触发自动化脚本。
我目前有两个 bash 脚本
- 确定我连接的wifi网络
- 执行备份(使用 rclone)
我纠结的部分是 If、Then 和 else 部分。
Bash 脚本 1:
/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | awk -F: '/ SSID/{print }'
尝试使用 applescript:
on run {input, parameters}
if input is not ("home") then error number -128
return input
end run
Bash 应该 运行 检测家庭网络的脚本:
/usr/local/Cellar/rclone/1.52.1/bin/rclone copy "Source" Remote:folder
两个 bash 脚本都可以工作,但我被困在有条件的部分......非常感谢收到任何帮助。
运行你的命令,我得到以下
❯ /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | awk -F: '/ SSID/{print }'
Home
您会注意到在 Home
之前有一个 tiiiiiiiiny space。正文其实是<space>Home
.
您的问题出在 awk
命令中。
当您将文本 SSID: Home
拆分为 :
时,</code> 变为 <code> SSID
,</code> 变为 <code> Home
。 (再次注意 spaces)。
您对 applescript 的输入正在寻找 Home
。 Home
不匹配 Home
.
注意间距和大小写。
其次,input
是一个list
,不是字符串。所以 input is not ("home")
将始终 运行 因为你将它与字符串进行比较。
如果您想将 input
与 string
进行比较,例如 home
.
string
on run {input, parameters}
if (input as string) is " home" then
tell application "System Events" to display dialog "You are home."
end if
return input
end run