$PATH是shell的一个特殊变量。它定义了执行子命令时要搜索的目录列表。
我正在尝试收集所有的TODO,并用它们创建一个文件。
#!/bin/bash
# Script for getting all TODOS
PATH="~/documents/obsidian-notes/"
OUTPUT="/home/fish/documents/obsidian-notes/TODO.md"
echo "#TODO" > $OUTPUT
grep -hr --exclude-dir=plugins "bTODOb:.*" $PATH | awk '{print $0,"n"}' >> $OUTPUT
如果我在提示中运行每一行,它就会完美运行。当我把它们添加到脚本中,使其可执行并运行时,我会得到
./obtodo.sh: line 10: grep: command not found
./obtodo.sh: line 10: awk: command not found
./obtodo.sh: line 12: chown: command not found
我尝试以sudo的身份运行,并使用chmod a+x
使脚本可执行
Bash不知道grep、awk或chown在哪里。请使用不同的变量名,而不是$PATH。
尝试
#!/bin/bash
# Script for getting all TODOS
xPATH="~/documents/obsidian-notes/"
OUTPUT="/home/fish/documents/obsidian-notes/TODO.md"
echo "#TODO" > $OUTPUT
grep -hr --exclude-dir=plugins "bTODOb:.*" $xPATH | awk '{print $0,"n"}' >> $OUTPUT