shell基础
1 第一个shell脚本 2 #!/bin/bash 3 echo "Hello World" 4 5 使用read从标准输入获取输入并赋值给变量,然后输出 6 #!/bin/bash 7 8 # Author : zjw 9 # Copyright @ www.litsoft.com 10 # Script follow here: 11 12 echo "what is your name?" 13 read PERSON 14 echo "Hello, $PERSON" 15 16 使用变量,并使用了for循环 17 #!/bin/bash 18 19 for skill in Ada Coffe Action Java 20 do 21 echo "I am good at ${skill} Script." 22 done 23 24 echo "Over" 25 26 重定义变量 27 #!/bin/bash 28 29 myUrl="Http://www.litsoft.com" 30 echo ${myUrl} 31 32 myUrl="Http://www.myblog.com" 33 echo ${myUrl} 34 35 echo "Over" 36 37 38 只读变量 39 #!/bin/bash 40 41 myUrl="Http://www.litsoft.com" 42 echo ${myUrl} 43 44 readonly myUrl 45 46 myUrl="Http://www.myblog.com" 47 echo ${myUrl} 48 49 echo "Over" 50 51 52 删除变量 53 #!/bin/bash 54 55 myUrl="Http://www.litsoft.com" 56 echo ${myUrl} 57 58 unset myUrl 59 60 #myUrl="Http://www.myblog.com" 61 echo ${myUrl} 62 63 echo "Over" 64 65 66 特殊变量,命令行参数 67 #!/bin/bash 68 69 echo "File Name : $0" 70 echo "First Parameter : $1" 71 echo "Second Parameter : $2" 72 echo "Quoted Values : $@" 73 echo "Quoted Values : $*" 74 echo "Total Number of Parameters : $#" 75 76 77 变量替换 78 #!/bin/bash 79 80 a=10 81 echo -e "Value of a is $a \n" 82 echo "Over" 83 84 85 命令替换 86 #!/bin/bash 87 DATE=date 88 echo "Date is $DATE" 89 90 USERS=who | wc -l 91 echo "Logged in user are $USERS" 92 93 UP=date; uptime 94 echo "Uptime is &UP" 95 96 97 变量替换 98 #!/bin/bash 99 100 echo ${var:-"Variable is not set"} 101 echo "1 - Value of var is ${var}" 102 103 echo ${var:="Variable is not set"} 104 echo "2 - Value of var is ${var}" 105 106 unset var 107 echo ${var:+"This is default value"} 108 echo "3 - Value of var is $var" 109 110 var="Prefix" 111 echo ${var:+"This is default value"} 112 echo "4 - Value of var is $var" 113 114 echo ${var:?"Print this message"} 115 echo "5 - Value of var is ${var}" 116 117 118 ===========================shell运算符============================================ 119 算术运算符 120 #!/bin/bash 121 122 val= expr 2 + 2 123 124 echo "Total value : $val" 125 126 #!/bin/bash 127 128 a=10 129 b=20 130 val= expr $a + $b 131 echo "a + b : $val" 132 133 val= expr $a - $b 134 echo "a - b : $val" 135 136 val= expr $a \* $b 137 echo "a * b : $val" 138 139 val= expr $b / $a 140 echo "b / a : $val" 141 142 val= expr $b % $a 143 echo "b % a : $val" 144 145 if [ $a == $b ] 146 then 147 echo "a is equal to b" 148 fi 149 150 if [ $a != $b ] 151 then 152 echo "a is not equal to b" 153 fi 154 155 156 关系运算符 157 #!/bin/sh 158 159 a=10 160 b=20 161 if [ $a -eq $b ] 162 then 163 echo "$a -eq $b : a is equal to b" 164 else 165 echo "$a -eq $b : a is not equal to b" 166 fi 167 168 if [ $a -ne $b ] 169 then 170 echo "$a -ne $b : a is not equal to b" 171 else 172 echo "$a -ne $b : a is equal to b" 173 fi 174 175 if [ $a -gt $b ] 176 then 177 echo "$a -gt $b : a is greater than b" 178 else 179 echo "$a -gt $b : a is not greater than b" 180 fi 181 182 if [ $a -lt $b ] 183 then 184 echo "$a -lt $b : a is less than b" 185 else 186 echo "$a -lt $b : a is not less than b" 187 fi 188 189 if [ $a -ge $b ] 190 then 191 echo "$a -ge $b : a is greater or equal to b" 192 else 193 echo "$a -ge $b : a is not greater or equal to b" 194 fi 195 196 if [ $a -le $b ] 197 then 198 echo "$a -le $b : a is less or equal to b" 199 else 200 echo "$a -le $b : a is no less or equal to b" 201 fi 202 203 204 布尔运算符 205 #!/bin/bash 206 207 a=10 208 b=20 209 210 if [ $a != $b ] 211 then 212 echo "$a != $b : a is not equal to b" 213 else 214 echo "$a != $b : a is equal to b" 215 fi 216 217 if [ $a -lt 100 -a $b -gt 15 ] 218 then 219 echo "$a -lt 100 -a $b -gt 15 : return true" 220 else 221 echo "$a -lt 100 -a $b -gt 15 : return false" 222 fi 223 224 if [ $a -lt 100 -o $b -gt 100 ] 225 then 226 echo "$a -lt 100 -o $b -gt 100 : return true" 227 else 228 echo "$a -lt 100 -o $b -gt 100 : return false" 229 fi 230 231 if [ $a -lt 5 -o $b -gt 100 ] 232 then 233 echo "$a -lt 100 -o $b -gt 100 : return true" 234 else 235 echo "$a -lt 100 -o $b -gt 100 : return false" 236 fi 237 238 239 字符串运算符 240 #!/bin/bash 241 242 a="abc" 243 b="efg" 244 245 if [ $a = $b ] 246 then 247 echo "$a = $b : a is equal to b" 248 else 249 echo "$a = $b : a is not equal to b" 250 fi 251 252 if [ $a != $b ] 253 then 254 echo "$a != $b : a is not equal to b" 255 else 256 echo "$a != $b : a is equal to b" 257 fi 258 259 if [ -z $a ] 260 then 261 echo "-z $a : string length is zero" 262 else 263 echo "-z $a : string length is not zero" 264 fi 265 266 if [ -n $a ] 267 then 268 echo "-n $a : string length is not zero" 269 else 270 echo "-n $a : string length is zero" 271 fi 272 273 if [ $a ] 274 then 275 echo "$a : string is not empty" 276 else 277 echo "$a : string is empty" 278 fi 279 280 281 文件测试运算符 282 #!/bin/bash 283 284 file="/mnt/hgfs/work/mycode/shell/1.sh" 285 286 if [ -r $file ] 287 then 288 echo "File has read access" 289 else 290 echo "File does not have read access" 291 fi 292 293 if [ -w $file ] 294 then 295 echo "File has write permission" 296 else 297 echo "File does not have write permission" 298 fi 299 300 if [ -x $file ] 301 then 302 echo "File has execute permission" 303 else 304 echo "File does not has execute permission" 305 fi 306 307 if [ -f $file ] 308 then 309 echo "File is an ordinary file" 310 else 311 echo "This is a spcial file" 312 fi 313 314 if [ -d $file ] 315 then 316 echo "File is a directory file" 317 else 318 echo "This is not a directory file" 319 fi 320 321 if [ -s $file ] 322 then 323 echo "File size is zero" 324 else 325 echo "File size is not zero" 326 fi 327 328 if [ -e $file ] 329 then 330 echo "File exists" 331 else 332 echo "File does not exist" 333 fi