==== 问题描述 ====
macOS在系统升级到Sequoia 15.0以后WOL-14900k命令无法执行。
>>>> 报错 >>>>
rolex@9900K-11 bin % WOL-14900k
==== Step 1/3 Wake On ====
/usr/local/bin/WOL-14900k: /usr/local/bin/wakeonlan: /usr/bin/perl5.30: bad interpreter: No such file or directory
/usr/local/bin/WOL-14900k: /usr/local/bin/wakeonlan: /usr/bin/perl5.30: bad interpreter: No such file or directory
==== Step 2/3 Ping ====
Waiting for device 192.168.1.16 to respond... 等待设备 192.168.1.16 响应...
<<<< 报错 <<<<
==== 分析问题 ====
因为WOL-14900k命令实际上是指向/Users/rolex/Code/WakeOn/WOL-14900k-1618.sh脚本,
所以可能问题出在/Users/rolex/Code/WakeOn/WOL-14900k-1618.sh脚本无法运行。
根据报错分析,报错的真正来源在于你调用的 wakeonlan 命令,它依赖于位于 /usr/local/bin/wakeonlan 的脚本,而这个脚本的 shebang 指向了错误的 Perl 解释器路径。
你需要检查 /usr/local/bin/wakeonlan 脚本的第一行,确保它指向了正确的 Perl 解释器。如果需要,你可以重新安装 wakeonlan 或手动修改路径。
$ which perl
/usr/local/bin/perl
$ vim /usr/local/bin/wakeonlan
#!/usr/bin/perl5.30 -w
==== 解决方案 ====
修改usr/local/bin/wakeonlan 脚本的第一行
>>>> 修正前 >>>>
#!/usr/bin/perl5.30 -w
<<<< 修正前 <<<<
>>>> 修正后 >>>>
#!/usr/local/bin/perl -w
<<<< 修正后 <<<<
==== 总结 ====
wakeonlan 命令赖于位于 /usr/local/bin/wakeonlan 的脚本,而这个脚本的 shebang(#!) 指向了错误的 Perl 解释器路径。
修正 /usr/local/bin/wakeonlan 的脚本第一行的 shebang(#!) 指向为正确路径就可以了。