osascript - osascript 使用包含路径的变量更改壁纸失败
问题描述
我正在尝试运行此脚本来更改我的墙纸,但是当文件的路径位于变量中时我遇到了问题
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 -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\""
另请注意,$()
表单是命令替换。
推荐阅读
- excel - Excel:按范围内的单元格计算多个字符
- react-native - OnPress 不起作用 React Native - Android
- python - pygame 没有显示任何内容,直到我关闭它
- laravel - laravel 6 Route在添加本地化后不起作用
- xamarin - 是 Xamarin Forms 中的 OnSleep 和 OnResume 虚拟方法吗
- unit-testing - 如何模拟 web api 进行测试
- tensorflow - 分段错误 Tensorflow Lite
- scala - 如何使用分隔符 ^|^ 将数据文件加载到 spark scala 中?
- javascript - 可以在脚本执行时使用 Ajax post 调用的 php 脚本发回 SSE 事件吗
- java - 当变量在Java中的特定时间间隔内未更新时,如何将变量的值超时为空?