පරාමිතිය සැකසූ / නිර්වචනය නොකළ හෝ හිස් නම් (බාෂ්, ksh සහ zsh වලින්) ඔබ පළ කළ කේතය [[ ! -z $param ]] && echo "I am not zero"
මුද්රණය I am not zero
වේ.
කිරීමට ද param පමණක් අවකාශ (ඉවත් අවකාශයන්), POSIXly (ෂෙල් වෙඩි පුළුල් පරාසයක සඳහා) අඩංගු වේ නම් මුද්රණය:
[ -z "${param#"${param%%[! ]*}"}" ] && echo "empty"
පැහැදිලි කිරීම:
- ඒ
${param# … }
සඳහා ඉවත් ප්රමුඛ පෙළ.
- එම ප්රමුඛ පෙළ ලබා දෙන්නේ:
${param%%[! ]*}
- එය ඕනෑම අවකාශයක් නොවන අක්ෂරයකට පෙර සියලු අවකාශයන් දක්වා විහිදේ , එනම් සියලු ප්රමුඛ අවකාශයන්.
සමස්ත ප්රසාරණයේ අවසාන ප්රති result ලය වනුයේ සියලුම ප්රමුඛ අවකාශයන් ඉවත් වීමයි.
මෙම පුළුල් කළ ප්රති result ලය දිග 0 නම් පරීක්ෂා කරනු ලැබේ.
- ප්රති result ලය හිස් නම්, එක්කෝ විචල්යය හිස් විය, නැතහොත්
- ප්රමුඛ අවකාශයන් ඉවත් කිරීමෙන් එය හිස් විය.
එමනිසා, පරීක්ෂණය සත්ය නම්, විචල්යය දැනටමත් හිස්ව තිබුනි, නැතහොත් එහි ඉඩ ප්රමාණයක් තිබුනි.
සංකල්පය තවත් අක්ෂර වර්ග දක්වා විහිදීම පහසුය. ටැබ් ද ඇතුළත් කිරීමට, වරහන් ප්රකාශනය තුළ පැහැදිලි පටිත්තක් තබන්න:
[ -z "${param#"${param%%[! ]*}"}" ] && echo "empty"
හෝ ඔබට ඉවත් කිරීමට අවශ්ය අක්ෂර සමඟ විචල්යයක් භාවිතා කරන්න:
var=$' \t' # in ksh, bash, zsh
[ -z "${param#"${param%%[!$var]*}"}" ] && echo "empty"
හෝ ඔබට POSIX "අක්ෂර පන්ති ප්රකාශනය" භාවිතා කළ හැකිය (හිස් යන්නෙන් අවකාශය සහ පටිත්ත):
[ -z "${param#"${param%%[![:blank:]]*}"}" ] && echo "empty"
man test
:-z STRING - the length of STRING is zero
. ඔබට ඇති සියලුම අවකාශයන් ඉවත් කිරීමට අවශ්ය නම්$param
, භාවිතා කරන්න${param// /}