input: Write a function to construct a Bash script that installs a given software. The function should take the software version as input and return the complete Bash script as a string. If the input is invalid, the function should return an error message.
  assert construct_script("Python 3.8.5")=="#!/bin/bash\n\n# Download latest version of Python\ncurl -O https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz\n\n# Extract the tgz file\ntar -xzf Python-3.8.5.tgz\n\n# Move into the Python directory\ncd Python-3.8.5\n\n# Run the configure script\n./configure\n\n# Compile and install\nmake\nmake install"
  assert construct_script("Node.js 14.17.0")==None # because this version is not handled in the instruction
  assert construct_script("")=="Error: Invalid input. Please provide a valid software version."
  assert construct_script(12345)=="Error: Invalid input. Please provide a valid software version."
  assert construct_script("Python")=="Error: Invalid input. Please provide a specific version number."
output: def construct_script(version):
      if not isinstance(version, str) or not version:
          return "Error: Invalid input. Please provide a valid software version."
      
      parts = version.split()
      if len(parts) < 2:
          return "Error: Invalid input. Please provide a specific version number."
      
      software, ver = parts[0], parts[1]
      
      if software == "Python":
          return f"#!/bin/bash\n\n# Download latest version of Python\ncurl -O https://www.python.org/ftp/python/{ver}/Python-{ver}.tgz\n\n# Extract the tgz file\ntar -xzf Python-{ver}.tgz\n\n# Move into the Python directory\ncd Python-{ver}\n\n# Run the configure script\n./configure\n\n# Compile and install\nmake\nmake install"
      else:
          return None