Bash:在for循环中找不到命令
我试图遍历文件夹名称列表,并对名称执行一些操作,但无论我在while循环中尝试做什么,都会导致“Command not found” 例如,以下代码:Bash:在for循环中找不到命令,bash,Bash,我试图遍历文件夹名称列表,并对名称执行一些操作,但无论我在while循环中尝试做什么,都会导致“Command not found” 例如,以下代码: #!/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)
#!/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
PATH
是一个特殊变量,它告诉shell在哪里可以找到公共实用程序。例如,sed
和cut
通常位于/bin
中,$PATH
通常包括/bin
因此,在
for
循环中,您已经将$PATH
重新定义为find
操作的结果。如果您使用的变量名不是PATH
PATH
是一个特殊的变量,它告诉shell在哪里可以找到公共实用程序,那么您的运气会更好。例如,sed
和cut
通常位于/bin
中,$PATH
通常包括/bin
因此,在
for
循环中,您已经将$PATH
重新定义为find
操作的结果。如果您使用的变量名不是PATH
,那么您的运气会更好。最佳做法是使用小写变量名,正是出于这个原因。最佳做法是使用小写变量名。