【问题标题】:Bash - What is the best way to save the value of a quantity after the script has terminated?Bash - 脚本终止后保存数量值的最佳方法是什么?
【发布时间】:2015-07-02 17:12:36
【问题描述】:

我正在尝试编写一个脚本,将我的桌面壁纸更改为~\Picture\Wallpapers 目录中的下一张图片。我已经创建了一个脚本,change_wallpaper,它可以将我的桌面背景更改为任何给定的图片。

我的计划是将~\Picture\Wallpapers中的所有图片作为一个数组列出,找到当前壁纸的索引i,并将change_wallpaper应用于图片数组的i+1元素。我唯一的问题是找到一种方法来记录当前壁纸的索引。我可以创建一个包含这个值的文件,但是将一个数字为 12 的文本文件保存在我的主目录中的某个位置似乎真的很不雅。

有没有更好的办法?

【问题讨论】:

  • 使用文件。文件是 UNIX 中的核心概念。打个比方,你的整数就像任何守护进程的 PID 文件。作为附带的好处,您的墙纸索引将在重新启动后继续存在。
  • 如果您对目录中的文件有稳定的排序顺序,您可以只使用指向当前文件的符号链接,然后获取下一个文件并更新链接。
  • @EtanReisner 好主意。也可以有两个符号链接:current 和 next,然后移动到 current 并选择合适的 next。
  • 如果您正在编写将在后台连续运行的脚本(用于在特定时间后更改图像),您可以在 bash 脚本中使用变量,否则您将不得不使用文件,因为 bash 不要' t 有任何静态变量。
  • @bishop 这种方式变化不大,但可以肯定。您仍然必须以某种方式找出下一个文件。发生这种情况时,您只需更改即可。

标签: bash


【解决方案1】:

我同意使用文件存储当前壁纸索引的普遍共识。一个稍微优雅一点的方法是放一个“。”。 (点)在文件名前面使其隐藏在脚本所在的目录中。比如:

admin@myHost:/home/admin$ ls -la
total 6200
drwxrwxr-x    4 admin    admin          4096 Jul 02 15:41 .
drwxr-xr-x   71 bin      bin            4096 Jun 29 12:43 ..
-rw-------    1 admin    admin          3939 Jun 29 16:02 .bash_history
-rw-r--r--    1 admin    admin            21 Nov 04 2014  .bashrc
-rwxr-x--x    1 admin    admin           259 Oct 13 2014  .profile
-rw-------    1 admin    admin          3939 Jun 29 16:02 .wallpaper_index
-rw-------    1 admin    admin          3939 Jun 29 16:02 change_wallpaper

有无数的 linux 和 unix 应用程序可以做到这一点。

【讨论】:

    猜你喜欢
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多