From cc68e1c2ea0d685072b4063aeb9af50f7e42cd98 Mon Sep 17 00:00:00 2001 From: Abigail Date: Tue, 26 Jan 2021 02:09:46 +0100 Subject: Bash solution for week 097, part 2 --- challenge-097/abigail/README.md | 1 + challenge-097/abigail/bash/ch-1.sh | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 challenge-097/abigail/bash/ch-1.sh diff --git a/challenge-097/abigail/README.md b/challenge-097/abigail/README.md index 9eec07616d..bd64d4cbbe 100644 --- a/challenge-097/abigail/README.md +++ b/challenge-097/abigail/README.md @@ -24,6 +24,7 @@ We will be reading the plain text from STDIN, and use an option (-s) to indicate the left shift. ### Solutions +* [Bash](bash/ch-1.sh) * [Node.js](node/ch-1.js) * [Perl](perl/ch-1.pl) diff --git a/challenge-097/abigail/bash/ch-1.sh b/challenge-097/abigail/bash/ch-1.sh new file mode 100644 index 0000000000..e51ebe5562 --- /dev/null +++ b/challenge-097/abigail/bash/ch-1.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +# +# See ../README.md +# + +# +# Run as: bash ch-1.sh -s SHIFT < input-file +# + +# +# Read the option +# +while getopts "s:" name +do if [ "$name" = "s" ] + then shift=$OPTARG + fi +done + + +# +# Iterate over the input, shifting each line as many times as needed +# +while read line +do for ((i = 0; i < $shift; i ++)) + do line=`echo $line | tr A-Z ZA-Y` + done + echo $line +done -- cgit