Bird
Raised Fist0
Bash Scriptingscripting~10 mins

File existence checks in Bash Scripting - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to check if the file 'data.txt' exists.

Bash Scripting
if [ [1] "data.txt" ]; then
  echo "File exists"
fi
Drag options to blanks, or click blank then click option'
A-f
B-d
C-e
D-s
Attempts:
3 left
💡 Hint
Common Mistakes
Using -d which checks only for directories.
Using -f which checks only for regular files.
Using -s which checks if file exists and is not empty.
2fill in blank
medium

Complete the code to check if 'log.txt' is a regular file.

Bash Scripting
if [ [1] "log.txt" ]; then
  echo "It's a regular file"
fi
Drag options to blanks, or click blank then click option'
A-f
B-e
C-d
D-r
Attempts:
3 left
💡 Hint
Common Mistakes
Using -d which checks for directories.
Using -e which checks for any file or directory.
Using -r which checks if file is readable.
3fill in blank
hard

Fix the error in the code to check if 'folder' is a directory.

Bash Scripting
if [ [1] "folder" ]; then
  echo "It's a directory"
fi
Drag options to blanks, or click blank then click option'
A-f
B-d
C-e
D-s
Attempts:
3 left
💡 Hint
Common Mistakes
Using -f which checks for regular files.
Using -e which checks for any file or directory.
Using -s which checks if file is not empty.
4fill in blank
hard

Fill both blanks to check if 'script.sh' exists and is executable.

Bash Scripting
if [ [1] "script.sh" ] && [ [2] "script.sh" ]; then
  echo "Script is ready to run"
fi
Drag options to blanks, or click blank then click option'
A-e
B-x
C-f
D-r
Attempts:
3 left
💡 Hint
Common Mistakes
Using -e instead of -f to check for regular file.
Using -r instead of -x to check for executable permission.
5fill in blank
hard

Fill all three blanks to create a dictionary of files and their sizes if size is greater than 0.

Bash Scripting
declare -A file_sizes
for file in *; do
  if [ [1] "$file" ] && [ $( [2] "$file" ) -gt 0 ]; then
    file_sizes[[3]]=$(stat -c%s "$file")
  fi
done
Drag options to blanks, or click blank then click option'
A-f
Bstat -c%s
C$file
D-s
Attempts:
3 left
💡 Hint
Common Mistakes
Using -f instead of -s to check file size.
Using filename incorrectly as dictionary key.
Not using stat command to get file size.

Practice

(1/5)
1. Which command correctly checks if a file named data.txt exists in a bash script?
easy
A. if [ -e data.txt ]; then echo "File exists"; fi
B. if ( -e data.txt ); then echo "File exists"; fi
C. if [[ exists data.txt ]]; then echo "File exists"; fi
D. if test -f data.txt then echo "File exists"; fi

Solution

  1. Step 1: Understand the correct syntax for file existence check

    The test command with square brackets and -e checks if a file or directory exists.
  2. Step 2: Verify the command structure

    The command if [ -e data.txt ]; then ... fi is the correct syntax in bash for this check.
  3. Final Answer:

    if [ -e data.txt ]; then echo "File exists"; fi -> Option A
  4. Quick Check:

    Use [ -e filename ] to check existence [OK]
Hint: Use [ -e filename ] inside if for existence check [OK]
Common Mistakes:
  • Using parentheses instead of square brackets
  • Using incorrect test operators like 'exists'
  • Missing semicolon or then keyword
2. Which of the following is the correct syntax to check if a file report.log exists and is a regular file in bash?
easy
A. if [ -d report.log ]; then echo "Exists"; fi
B. if [ -f report.log ]; then echo "Exists"; fi
C. if [ -e report.log ]; then echo "Exists"; fi
D. if test -x report.log; then echo "Exists"; fi

Solution

  1. Step 1: Identify the test for regular file

    The -f option checks if the file exists and is a regular file (not directory).
  2. Step 2: Confirm the syntax

    The syntax if [ -f report.log ]; then ... fi correctly checks for a regular file.
  3. Final Answer:

    if [ -f report.log ]; then echo "Exists"; fi -> Option B
  4. Quick Check:

    -f checks regular file existence [OK]
Hint: Use [ -f filename ] to check regular file existence [OK]
Common Mistakes:
  • Using -d which checks for directories
  • Using -x which checks for executable permission
  • Confusing -e (exists) with -f (regular file)
3. What will be the output of this script if myfile.txt does not exist?
if [ -e myfile.txt ]; then
  echo "Found"
else
  echo "Not Found"
fi
medium
A. Not Found
B. Syntax error
C. Found
D. No output

Solution

  1. Step 1: Understand the condition

    The condition [ -e myfile.txt ] checks if the file exists.
  2. Step 2: Evaluate the file existence

    Since myfile.txt does not exist, the condition is false, so the else branch runs.
  3. Final Answer:

    Not Found -> Option A
  4. Quick Check:

    File missing triggers else branch [OK]
Hint: If file missing, else branch runs [OK]
Common Mistakes:
  • Assuming output is 'Found' even if file missing
  • Confusing -e with other test operators
  • Missing else branch handling
4. Identify the error in this bash snippet that checks if config.cfg exists:
if [ -e config.cfg ]
  echo "Exists"
fi
medium
A. Echo command syntax is wrong
B. Wrong test operator -e used
C. Missing closing bracket ]
D. Missing then keyword after condition

Solution

  1. Step 1: Check if statement syntax

    Bash requires the then keyword after the condition in an if statement.
  2. Step 2: Identify missing part

    The snippet lacks then after [ -e config.cfg ], causing a syntax error.
  3. Final Answer:

    Missing then keyword after condition -> Option D
  4. Quick Check:

    if needs then after condition [OK]
Hint: Always put then after if condition [OK]
Common Mistakes:
  • Omitting then keyword
  • Forgetting semicolon before then on same line
  • Misplacing brackets
5. You want to write a bash script that checks if a file named backup.tar.gz exists, and if it does, prints "Backup found", otherwise creates an empty file with that name. Which script snippet correctly does this?
hard
A. if [ -e backup.tar.gz ]; then touch backup.tar.gz; else echo "Backup found"; fi
B. if [ -f backup.tar.gz ]; then touch backup.tar.gz; else echo "Backup found"; fi
C. if [ -e "backup.tar.gz" ]; then echo "Backup found"; else touch backup.tar.gz; fi
D. if test -d backup.tar.gz; then echo "Backup found"; else touch backup.tar.gz; fi

Solution

  1. Step 1: Check file existence correctly

    Use [ -e "backup.tar.gz" ] to check if the file exists, quoting filename to handle spaces.
  2. Step 2: Execute correct commands based on condition

    If file exists, print "Backup found"; else create empty file with touch.
  3. Final Answer:

    if [ -e "backup.tar.gz" ]; then echo "Backup found"; else touch backup.tar.gz; fi -> Option C
  4. Quick Check:

    Check existence then else create file [OK]
Hint: Quote filenames and use if-else for existence and creation [OK]
Common Mistakes:
  • Swapping then and else commands
  • Using -d to check regular files
  • Not quoting filenames with spaces
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard