Shall高级编程

源代码在线查看: str-test.sh

软件大小: 1353 K
上传用户: stuoju
关键词: Shall 高级编程
下载地址: 免注册下载 普通下载 VIP

相关代码

				#!/bin/bash				#  str-test.sh: Testing null strings and unquoted strings,				#+ but not strings and sealing wax, not to mention cabbages and kings . . .								# Using   if [ ... ]												# If a string has not been initialized, it has no defined value.				# This state is called "null" (not the same as zero).								if [ -n $string1 ]    # $string1 has not been declared or initialized.				then				  echo "String \"string1\" is not null."				else  				  echo "String \"string1\" is null."				fi  				# Wrong result.				# Shows $string1 as not null, although it was not initialized.												echo												# Lets try it again.								if [ -n "$string1" ]  # This time, $string1 is quoted.				then				  echo "String \"string1\" is not null."				else  				  echo "String \"string1\" is null."				fi                    # Quote strings within test brackets!												echo												if [ $string1 ]       # This time, $string1 stands naked.				then				  echo "String \"string1\" is not null."				else  				  echo "String \"string1\" is null."				fi  				# This works fine.				# The [ ] test operator alone detects whether the string is null.				# However it is good practice to quote it ("$string1").				#				# As Stephane Chazelas points out,				#    if [ $string1 ]    has one argument, "]"				#    if [ "$string1" ]  has two arguments, the empty "$string1" and "]" 																echo																string1=initialized								if [ $string1 ]       # Again, $string1 stands naked.				then				  echo "String \"string1\" is not null."				else  				  echo "String \"string1\" is null."				fi  				# Again, gives correct result.				# Still, it is better to quote it ("$string1"), because . . .												string1="a = b"								if [ $string1 ]       # Again, $string1 stands naked.				then				  echo "String \"string1\" is not null."				else  				  echo "String \"string1\" is null."				fi  				# Not quoting "$string1" now gives wrong result!								exit 0				# Thank you, also, Florian Wisser, for the "heads-up".							

相关资源