Book Image

Command Line Fundamentals

By : Vivek Nagarajan
Book Image

Command Line Fundamentals

By: Vivek Nagarajan

Overview of this book

The most basic interface to a computer—the command line—remains the most flexible and powerful way of processing data and performing and automating various day-to-day tasks. Command Line Fundamentals begins by exploring the basics, and then focuses on the most common tool, the Bash shell (which is standard on all Linux and iOS systems). As you make your way through the book, you'll explore the traditional Unix command-line programs as implemented by the GNU project. You'll also learn to use redirection and pipelines to assemble these programs to solve complex problems. By the end of this book, you'll have explored the basics of shell scripting, allowing you to easily and quickly automate tasks.
Table of Contents (6 chapters)

Chapter 4: Shell Scripting

Activity 10: PGN Game Extractor Enhancement

The solutions are provided in five script files, pgn_extract_act1.sh to pgn_extract_act5.sh. Each script contains the changes made in the previous problem steps, so pgn_extract_act5.sh has all the issues that were mentioned previously addressed. The following are the possible solutions:

  1. The following code can work:
    function count_moves()
    {
      IFS='.'
      local moves_arr=( $moves )
      local second_last=${moves_arr[@]: -2 : 1}
      IFS=' '
      local second_last_arr=( $second_last )
    
      num_moves=${second_last_arr[@]: -1 : 1}
    }
  2. Detecting blank lines can be done by testing for an empty string, such as the following:
    [[ -z $line ]] && return 0
  3. Instead of expressions such as count=$(( count + 1 )), we can write (( count ++ )). We can also change the [[ ]] based conditionals, which test numeric variables such as [[ $should_print...