我试图遍历文件夹名称列表,并对名称进行一些操作,但是我在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
答案 0 :(得分:2)
PATH
是一个特殊的变量,它告诉Shell在哪里可以找到公用程序。例如,sed
和cut
通常在/bin
中,而$PATH
通常包括/bin
。
因此,在您的for
循环中,您已经将$PATH
重新定义为find
操作的结果。如果您使用PATH
以外的其他变量名称,将会有更好的运气。