« Back to Index

[Bash Array Looping]

View original Gist on GitHub

Tags: #bash #shell #loop #code #gen

bash-array-looping.sh

#!/usr/bin/env bash
languages=("bash" "go" "javascript" "php" "python" "ruby" "rust" "typescript-fetch")
for lang in "${languages[@]}";
do
  for filename in .source-cache/.api-documentation/schemas/*;
  do
    name=$(basename $filename | cut -f 1 -d '.')
    openapi-generator generate -i "${filename}" -g "${lang}" -o "/tmp/api-code-gen/${lang}/${name}/"
  done
done

###############################################################################################################

components=(newsbeat-editorial-feed-renderer \
            newsbeat-latest-feed-renderer \
            newsbeat-most-popular-renderer \
            newsbeat-topic-renderer)

ips=()

for item in "${components[@]}"
do
  # echo "Y N Y N" passes each item sequentially through to further command prompts
  # e.g. our command prompts us to choose instance id
  ips+=$(echo "1" | bundle exec bbc-cosmos-tools component ssh $item --env=live | grep -E -o "\d+\.\d+\.\d+\.\d+")
done

echo ${#ips[@]} # count the length of the array
echo $ips

# Alternative way to loop array in bash
for ip in $ips
do
  ssh $ip,eu-west-1 id # placing command after ssh prevents tty to drop into session
done