Essentially, I would like something that behaves similarly to:

```
cat file | grep -i keyword1 | grep -i keyword2 | grep -i keyword3

```

How can I do this with a bash script that takes a variable-length list of keyword arguments? The script should do a case-insensitive match of lines containing all keywords.