Ex3.4: Suggested improvement for tutorial code example

Hi

For Exercise 3.4 of Advanced Utilities | Linux for Robotics, I’d like to suggest the following improvement to the code provided in the Ex3.4 Solution.

Currently this script will give an “./ex3_4_script.sh: line 5: [: ==: unary operator expected” error due to the lack of double quotes inside the IF statements for $ARG1. Issue logged here "bash: [: =: unary operator expected" on Linux for Robotics course?

Other recommended changes provide in the code block below may also be helpful to beginners;

  • use of ECHO as a useful debugging technique to see where a line succeeds/fails
  • use of ELSE statement to;
    demonstrate/prompt that an argument needs to be passed with the script
    demonstrate how a student can create a simple user prompt
#!/bin/bash

ARG1=$1

if [ "$ARG1" == "circle" ]; then
   echo "circling";
   rosrun move_bb8_pkg move_bb8_circle.py 

elif [ "$ARG1" == 'forward_backward' ]; then
     echo "back and forth";
     rosrun move_bb8_pkg move_bb8_forward_backward.py

elif [ "$ARG1" == "square" ]; then
     echo "square dancing";
     rosrun move_bb8_pkg move_bb8_square.py

else 
echo "Please enter one of the following;
circle
forward_backward
square"

fi
1 Like

Hi,

Thanks a lot for the suggestions, we will deploy these changes on the next notebook updates for sure ;).

On it right now :wink:

1 Like