BASH Programming

How To Check if String Is Neither Empty nor Space in Shell Script

In shell scripting, it is important to check whether a string is empty or contains only spaces before performing any operations on it. This is because performing operations on an empty or space-only string can lead to unexpected results this article will discuss various ways to check if a string is neither empty nor space in shell script.

How To Check if String Is Neither Empty nor Space in Shell Script

To check if a string is neither empty nor contains spaces in a shell script, you can use the following two methods:

Method 1: Using -n and -z Operators

The -n operator checks whether the length of the string is greater than zero, while the -z operator checks whether the length of the string is zero. We can use these operators in combination to check if a string is neither empty nor space in shell script. Here’s an example:

#!/bin/bash

string=" Hello Linux "

if [ -n "${string}" ] && [ -z "$(echo ${string} | tr -d '[:space:]')" ]

then

echo "The string is empty or contains only spaces."

else

echo "The string is neither empty nor contains only spaces."

fi

In this example, we first check whether the length of the string is greater than zero using the -n operator. Then, we remove all spaces from the string using the tr command and check whether the length of the resulting string is zero using the -z operator. If both conditions are true, we can conclude that the string is neither empty nor contains only spaces.

Method 2: Using Regular Expressions

We can also use regular expressions to check whether a string is neither empty nor space in shell script. Here’s an example:

#!/bin/bash

string=" Hello Linux "

if [[ "${string}" =~ ^[[:space:]]*$ ]]

then

echo "The string is empty or contains only spaces."

else

echo "The string is neither empty nor contains only spaces."

fi

In this example, we use the =~ operator to match the string against the regular expression ^[[:space:]]*$, which matches zero or more spaces at the beginning and end of the string. If the string matches this regular expression, we can conclude that it is either empty or contains only spaces.

Conclusion

In shell scripting, it is important to check whether a string is neither empty nor contains only spaces before performing any operations on it. We discussed two methods to perform this check: using -n/-z operators and using regular expressions. By using these methods, we can ensure that our shell scripts handle strings correctly and avoid unexpected errors.

About the author

Aaliyan Javaid

I am an electrical engineer and a technical blogger. My keen interest in embedded systems has led me to write and share my knowledge about them.