Bash:在for循环内找不到命令

时间:2018-10-13 21:24:58

标签: bash

我试图遍历文件夹名称列表,并对名称进行一些操作,但是我在while循环中尝试执行的任何操作都会导致“找不到命令”。

例如,以下代码:

#!/bin/bash

C=$(echo "ABCDEF" | cut -c1)
R=$(echo "ABCDEF" | sed "s/A/X/g")
echo $C
echo $R

for PATH in $(find . -maxdepth 1 -type d); do
        C=$(echo $PATH | cut -c1)
        R=$(echo $PATH | sed "s/A/X/g")
        echo $C
done

输出:

A
XBCDEF
line 9: cut: command not found
line 10: sed: command not found

1 个答案:

答案 0 :(得分:2)

PATH是一个特殊的变量,它告诉Shell在哪里可以找到公用程序。例如,sedcut通常在/bin中,而$PATH通常包括/bin

因此,在您的for循环中,您已经将$PATH重新定义为find操作的结果。如果您使用PATH以外的其他变量名称,将会有更好的运气。