Я предполагаю, что вы имеете в виду, что параметр был передан, но его значение пусто .Вот как это проверить:
if [ $# -gt 0 -a "$1" = '' ]
then
echo '$1 was passed, but empty'
fi
Если вы хотите проверить , сколько параметров было передано (пусто или нет), тогда используйте $#
(количество аргументов):
if [ $# -eq 0 ]
then
echo 'no parameters were passed'
fi
Если вы хотите проверить разницу между двумя двойными кавычками (""
) и одинарными кавычками (''
), нет способасделать это в оболочке Bourne в одиночку.К тому времени, когда ваш код будет выполнен, эти строки будут преобразованы в пустую строку.