如何将 if_existing 语句与路径字符串一起使用?
How to use if_existing statment with path string?
我正在尝试使用 ${if_existing ..} 检查文件是否存在于 conky 中,如下所示:
${if_existing /home/stanislav/.cache/yandexweather/bkn_n.png}YES \
${else}NO
${endif}\
这非常有效。但是,如何将 ${if_existing ..} 语句与另一个命令的输出一起使用?例如:
${if_existing echo "~/.cache/yandexweather/"$(python ~/.cache/yandexweather/yw_script.py -image_0)}YES \
${else}NO
${endif}\
后者不起作用
您可以使用 ${eval ...}
先计算 shell 命令,然后解析 ${if_...}
部分。例如,
${eval $${if_existing ${execi 10 echo "myfile"}}\
YES $${else} NO $${endif} }
在 eval 中,if..
else
和 endif
部分通过将 $
加倍为 $$
来使其无效。但是,${execi
部分每 10 秒运行并执行 shell 命令 (echo ...
)(如果您的表达式永远不会改变,请选择一个大的值)。
在 execi 返回字符串(在本例中为 myfile
)之后,将再次解析生成的命令。每个 $$
都被评估为 $
,所以我们有:
${if_existing myfile} YES ${else} NO ${endif}
我正在尝试使用 ${if_existing ..} 检查文件是否存在于 conky 中,如下所示:
${if_existing /home/stanislav/.cache/yandexweather/bkn_n.png}YES \
${else}NO
${endif}\
这非常有效。但是,如何将 ${if_existing ..} 语句与另一个命令的输出一起使用?例如:
${if_existing echo "~/.cache/yandexweather/"$(python ~/.cache/yandexweather/yw_script.py -image_0)}YES \
${else}NO
${endif}\
后者不起作用
您可以使用 ${eval ...}
先计算 shell 命令,然后解析 ${if_...}
部分。例如,
${eval $${if_existing ${execi 10 echo "myfile"}}\
YES $${else} NO $${endif} }
在 eval 中,if..
else
和 endif
部分通过将 $
加倍为 $$
来使其无效。但是,${execi
部分每 10 秒运行并执行 shell 命令 (echo ...
)(如果您的表达式永远不会改变,请选择一个大的值)。
在 execi 返回字符串(在本例中为 myfile
)之后,将再次解析生成的命令。每个 $$
都被评估为 $
,所以我们有:
${if_existing myfile} YES ${else} NO ${endif}