1

I am trying to make a bash script that gives the user options 1-5,with 5 being to exit. For option 2 I want the to be able to pass the file name as a argument for the file_size script but even when I catch the user input it still says the error message please enter a single file name as an argument. I am not sure why is doesn't pass it as a argument, Any help would be appreciated.

    #!/bin/bash

# usage: ./menu_script

exitvar=false 

while [ $exitvar = "false" ]  # keep looping until exit equal true
  do

echo -n "Enter a number 1 through 5, 5 to exit"
read number

case $number in
1) echo "Move empty files"
/home/student/move_empty;;

2) echo "Check file size"
echo -n "Enter a file name to check: "
read sourcefile

/home/student/file_size;;

3) echo "Option3";;

4) echo "File check rwx"
echo -n "Enter a file name to check: "
read  sourcefile

if [ -e $sourcefile ]  # does the source file exist? 
 then
   echo $sourcefile "exists!"
  fi     

# find out if file has write permission or not
[ -w $sourcefile ] && W="Write = yes" || W="Write = No"

# find out if file has excute permission or not
[ -x $sourcefile ] && X="Execute = yes" || X="Execute = No"

# find out if file has read permission or not
[ -r $sourcefile ] && R="Read = yes" || R="Read = No"

echo "$sourcefile permissions"
echo "$W"
echo "$R"
echo "$X"

;;

5) echo "exit"
   exitvar="true"
   ;;
 *) echo "Invalid number try again"
   ;;
 esac
done

2 Answers 2

1

At the option 2)

2) echo "Check file size"
  echo -n "Enter a file name to check: "
  read -r  sourcefile
  echo /home/student/file_size "$sourcefile";;
  • To see if the argument is being pass to /home/student/filesize

  • It would be nice and informative to show a menu with numbers alongside the option.

Sign up to request clarification or add additional context in comments.

Comments

0

Or run subscripts with source or . this way subscripts will gain access to vars in main script

source /home/student/file_size
.      /home/student/file_size

And use -p option for read to minimize echoes

read -r -p "Enter a file name to check: " sourcefile

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.