By Bobby Iliev
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!
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Accepted Answer
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
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.