I recently got asked how to check if a variable is empty in a Bash script.
Here is an example script, where we expect the user to enter a value when asked to do so:
#!/bin/bash
echo "Enter your name: "
read name
echo "Hello ${name}"
If you run the script, you will be able to press enter, and the output would be just Hello
.
Here’s how to check if a variable is empty in a Bash script!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
The quick answer on how to check if a variable is empty in Bash is to use the following expression:
[[ -z ${string} ]]
If we take the example from above, you can then use this in an if statement as follows:
#!/bin/bash
echo "Enter your name: "
read name
if [[ -z ${name} ]] ; then
echo "Make sure to specify your name!"
else
echo "Hello ${name}"
fi
You can also combine this in a while statement and ask the user for their input until they actually provide a value:
#!/bin/bash
echo "Enter your name: "
read name
while [[ -z ${name} ]] ; do
echo "Make sure to specify your name!"
echo "Enter your name: "
read name
done
echo "Hello ${name}"
That way, your user will be asked to enter their name until they actually input some value.
I hope that this helps! Regards, Bobby