bash-stdin-or-filename
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
bash-stdin-or-filename [2024/02/01 23:30] – dblume | bash-stdin-or-filename [2024/02/19 14:31] (current) – Moving because now have stdin and stdout sections dblume | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Bash Script Stdin or Filename ====== | ||
- | If you write a shell script and want it to run with either stdin or a filename, like so: | ||
- | |||
- | cat file.txt | script.sh | ||
- | script.sh file.txt | ||
- | |||
- | There are some options. Here we'll use '' | ||
- | |||
- | === The General, Idiomatic Way === | ||
- | |||
- | The canonical way is to cat the args to the script. | ||
- | |||
- | <file bash script.sh> | ||
- | # | ||
- | cat " | ||
- | </ | ||
- | |||
- | === Shell Default Parameter Substitution === | ||
- | |||
- | Use Bash parameter substitution to try to pass in '' | ||
- | |||
- | <file bash script.sh> | ||
- | # | ||
- | awk -F, ' | ||
- | </ | ||
- | |||
- | === Let the Command Handle It === | ||
- | |||
- | Since we're using '' | ||
- | bash script, be an awk script. (But in this case we can't use ''/ | ||
- | |||
- | <file bash script.awk> | ||
- | #!/bin/awk -f | ||
- | BEGIN{FS="," | ||
- | </ |
bash-stdin-or-filename.1706859040.txt.gz · Last modified: 2024/02/01 23:30 by dblume