【问题标题】:osascript changing wallpaper with variable containing the path failsosascript 使用包含路径的变量更改壁纸失败
【发布时间】:2019-12-27 08:24:01
【问题描述】:

我正在尝试运行此脚本来更改我的墙纸,但是当文件的路径位于变量中时我遇到了问题

sh run.sh
wallpaper_path="$(pwd)/assets/wallpaper.jpg"
osascript -e 'tell application "Finder" to set desktop picture to POSIX file "$(wallpaper_path)"'

33:48: execution error: Finder got an error: AppleEvent handler failed. (-10000)

另一方面,绝对路径工作正常

osascript -e 'tell application "Finder" to set desktop picture to POSIX file "/Users/stupifatcat/workspace/project/assets/wallpaper.jpg"'

有人知道我做错了什么吗?

【问题讨论】:

    标签: osascript


    【解决方案1】:

    单引号字符串可防止变量被扩展。您将需要使用额外的单引号来划分字符串,或者根据需要切换到双引号并转义:

    osascript -e 'tell application "Finder" to set desktop picture to POSIX file "'$wallpaper_path'"'
    

    osascript -e "tell application \"Finder\" to set desktop picture to POSIX file \"$wallpaper_path\""
    

    还要注意$() 形式是一个命令替换。

    【讨论】:

      猜你喜欢
      • 2015-11-04
      • 2013-10-04
      • 1970-01-01
      • 2011-05-19
      • 2018-08-14
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多