提问人:user3689963 提问时间:7/5/2023 更新时间:7/5/2023 访问量:81
为什么这个 bash 脚本总是执行其他部分?
Why does this bash script always execute the else part?
问:
for e in $( ls $1 ); do
if [ -d $e ]; then
echo -n "Directory $e has words="
else
echo -n "File $e has words="
fi
echo -n $e | wc -c
done
上面的脚本总是执行其他部分,尽管 $1 中有目录。我犯了什么错误?
谢谢。
答: 暂无答案
评论
ls $1
正在列出目录中的文件和子目录,但正在查找当前目录。用于获取项目的完整路径。更一般地说,ls
用于向用户显示文件列表,而不是用于以编程方式获取文件列表。$1
[ -d $e ]
for e in "$1"/*; do
#!/bin/bash
ls
(以及该怎么做)?set -x
set +x
[ -d "$e" ]