我需要我的脚本对当前目录中的每个文件(不包括任何子目录)执行某些操作。
比如当前路径下有5个文件,但其中1个是文件夹(子目录)。我的脚本应该在运行所述脚本时激活作为参数给出的命令。即“bash script wc -w”应该给出当前目录中每个文件的字数,而不是任何文件夹,以便输出永远不会有任何“/sub/dir: Is a directory”行。
我目前的脚本:
#!/bin/bash
dir=`pwd`
for file in $dir/*
do
$* $file
done
Run Code Online (Sandbox Code Playgroud)
我只需要排除循环的目录,但我不知道如何。
lak*_*tak 16
#!/bin/bash -
for file in "$dir"/*
do
if [ ! -d "$file" ]; then
"$@" "$file"
fi
done
Run Code Online (Sandbox Code Playgroud)
请注意,它还排除了符号链接类型的文件,并且符号链接解析为目录类型的文件(这可能是您想要的)。
替代(来自评论),仅检查文件:
for file in "$dir"/*
do
if [ -f "$file" ]; then
"$@" "$file"
fi
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18527 次 |
| 最近记录: |