Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash:在for循环中找不到命令_Bash - Fatal编程技术网

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

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)

我试图遍历文件夹名称列表,并对名称执行一些操作,但无论我在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)
        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

,那么您的运气会更好。最佳做法是使用小写变量名,正是出于这个原因。最佳做法是使用小写变量名。