我刚刚学会了如何不断检查文件是否被修改:
while inotifywait -q -e modify filename >/dev/null; do
echo "filename is changed"
# do whatever else you need to do
done
Run Code Online (Sandbox Code Playgroud)
如果我使用目录名而不是文件名,我可以检查该目录的所有文件:
while inotifywait -q -e modify directoryname >/dev/null; do
echo "filename is changed"
# do whatever else you need to do
done
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能得到echo
已更改的文件的文件名呢?
我的脚本循环遍历所有子子目录并对pdflatex
所有 .tex 文件调用命令:
#!/usr/bin/env bash
shopt -s globstar
for d in ./*/**/*.tex; do
echo pdflatex "$d"
done
Run Code Online (Sandbox Code Playgroud)
我的问题
如何在循环中将当前工作目录设置为当前子子目录?
类似问题:如何将当前工作目录设置为脚本目录?
我为什么问
我的 .tex 文件包含相对路径,这就是为什么编译器仅在当前工作目录是文件所在目录时才起作用。