脚本中找不到 Grep 和其他程序

Grep and other programs not found in script

我正在尝试收集我所有的 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 "\bTODO\b:.*" $PATH | awk '{print [=10=],"\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

我尝试 运行ning 作为 sudo 并使用 chmod a+x

使脚本可执行

$PATH 是 shell 的一个特殊变量。它定义了执行子命令时要搜索的目录列表。

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 "\bTODO\b:.*" $xPATH | awk '{print [=10=],"\n"}' >> $OUTPUT