BLACK CAT PROGRAMMER

BASH – Calculating average

原來之前都幾無聊下,寫左咁多「小方遊戲」

#!/bin/bash

# cal_avg.sh
# Calculate the average of a series of numbers.

SCORE="0"
AVERAGE="0"
SUM="0"
NUM="0"

while true; do

  echo -n "Enter your score [0-100%] ('q' for quit): "; read SCORE;

  if (("$SCORE" < "0"))  || (("$SCORE" > "100")); then
    echo "Be serious.  Common, try again: "
  elif [ "$SCORE" == "q" ]; then
    echo "Average rating: $AVERAGE%."
    break
  else
    SUM=$[$SUM + $SCORE]
    NUM=$[$NUM + 1]
    AVERAGE=$[$SUM / $NUM]
  fi

done

echo "Exiting."
Posted in notesTagged

BASH – Guess number

Bash small game

#!/bin/bash

ANSWER=$[$RANDOM%100+1]
GUESS="-1"
FROM="1"
TO="100"

echo "The ANSWER is $ANSWER"

while true; do

	echo -n "Please guess a number [$FROM-$TO]: "; read GUESS;
	if (("$GUESS" < "$TO")) && (("$GUESS" > "$FROM")); then
		if (("$ANSWER" < "$GUESS")); then
			TO=$GUESS;
		elif (("$ANSWER" > "$GUESS")); then
			FROM=$GUESS;	
		elif (("$ANSWER" == "$GUESS")); then
			break
		fi
	else
		echo "Please enter again";
	fi
done

echo "Bingo. The answer is $ANSWER";
Posted in notesTagged

Editing a text file with sed

因為想將每次deployment 的過程都減少人手的改動,所以有下面的script 加version.ts 中的version 每次自動更新。

// version.ts

export const Constants = {
  SYSTEM_NAME: "Great system",
  SYSTEM_VERSION: "v1.0.0",
  SYSTEM_ID: 100,
}
#!/bin/bash

NEW_VERSION=$1
CONSTANT_FILE=version.ts

if [ ! -f $CONSTANT_FILE ]; then
    echo $CONSTANT_FILE not found
    echo exit now
    exit 0
fi

OLD_VERSION=$(cat $CONSTANT_FILE | grep "SYSTEM_VERSION" | cut -d ":" -f 2 | cut -d "\"" -f 2 )

echo updating versions from $OLD_VERSION to $NEW_VERSION
sed -i 's/SYSTEM_VERSION: "[^"]*"/SYSTEM_VERSION: "'$NEW_VERSION'"/g' $CONSTANT_FILE

echo done
Posted in notesTagged ,