29 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
PSQL="psql -X --username=freecodecamp --dbname=periodic_table --no-align --tuples-only -c"
 | 
						|
if [[ $# -ge 1 ]]
 | 
						|
then
 | 
						|
  if [[ $1 =~ ^[0-9]+$ ]]
 | 
						|
  then
 | 
						|
    ELEMENTQUERY=$($PSQL "SELECT atomic_number, symbol, name FROM elements WHERE atomic_number=$1")
 | 
						|
    IFS="|" read ATOMIC_NUMBER SYMBOL NAME <<< $ELEMENTQUERY
 | 
						|
  elif [[ ${#1} -le 2 ]]
 | 
						|
  then
 | 
						|
    ELEMENTQUERY=$($PSQL "SELECT atomic_number, symbol, name FROM elements WHERE symbol='$1'")
 | 
						|
    IFS="|" read ATOMIC_NUMBER SYMBOL NAME <<< $ELEMENTQUERY
 | 
						|
  else
 | 
						|
    ELEMENTQUERY=$($PSQL "SELECT atomic_number, symbol, name FROM elements WHERE name='$1'")
 | 
						|
    IFS="|" read ATOMIC_NUMBER SYMBOL NAME <<< $ELEMENTQUERY
 | 
						|
  fi
 | 
						|
  if [[ ${#ELEMENTQUERY} -le 0 ]]
 | 
						|
  then
 | 
						|
    echo -e  "I could not find that element in the database."
 | 
						|
  else
 | 
						|
    PROPERTIESQUERY=$($PSQL "SELECT atomic_mass::REAL, melting_point_celsius, boiling_point_celsius, type_id FROM properties WHERE atomic_number=$ATOMIC_NUMBER")
 | 
						|
    IFS="|" read ATOMIC_MASS MELTING_POINT BOILING_POINT TYPE_ID <<< $PROPERTIESQUERY
 | 
						|
    TYPE=$($PSQL "SELECT type FROM types WHERE type_id=$TYPE_ID")
 | 
						|
    echo -e "The element with atomic number $ATOMIC_NUMBER is $NAME ($SYMBOL). It's a $TYPE, with a mass of $ATOMIC_MASS amu. $NAME has a melting point of $MELTING_POINT celsius and a boiling point of $BOILING_POINT celsius."
 | 
						|
  fi
 | 
						|
else
 | 
						|
  echo "Please provide an element as an argument."
 | 
						|
fi |