下面是一个简单的bash程序。它将文件类型作为命令行参数,它查询当前目录并打印指定类型的文件。
我希望能够查询两种不同的文件类型,因此需要两个布尔表达式来表示这一点。
以下是我查询一种文件类型的代码
#!/bin/bash
for x in $(ls *$1); do
echo $x;
done
现在我想做的是(伪代码)
command line args fileName .sh .c
for x in (current directory files of *.sh) OR (in current directory files of *.c) do
print .sh files
print.c files
done
我尝试过使用||我得到语法错误我找不到任何能够使用||的证据for for循环中的两个表达式。
我尝试过使用两个嵌套的for循环但它们不起作用并产生错误。
我有什么方法可以使用相同的for循环系统来实现这一点。
谢谢。
答案 0 :(得分:0)
听起来像你想要的东西:
self.delayentry = self.delayent.get() #self.delayentryvar.get()
循环传递给脚本的所有参数,并打印以每个扩展名结尾的所有文件+换行符。
请注意for extension in "$@"; do
printf 'Files ending in %s:\n' "$extension"
printf '%s\n' *"$extension"
done
是一个比printf
更有用的工具,因为它允许您控制每件事的格式是打印。
echo
在这里做任何有用的事情都没有;它是将ls
扩展到与模式匹配的文件列表的shell。