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