read读取来自键盘输入的变量
[linuxidc@ubuntu /home 09:12 #54]$read atest
This is a test
[linuxidc@ubuntu /home 09:12 #55]$read -p "Please keyin your name: " -t 30 named
Please keyin your name: linuxidc
[linuxidc@ubuntu /home 09:13 #56]$echo $named
linuxidc
30秒没有任何操作时,该命令会自动略过。
declare或typeset,声明变量的类型
如果使用declare后面没有接任何参数,bash就会主动将变量名称数出来。
[linuxidc@ubuntu /home 09:21 #59]$sum=100+300+50
[linuxidc@ubuntu /home 09:22 #60]$declare -i sum=100+300+50
[linuxidc@ubuntu /home 09:22 #61]$echo $sum
450
变量类型默认为字符串,所以不能制定变量类型,则1+2为一个字符串而不是计算式,因此执行第一条命令会直接输出100+300+50.。
将sum变成环境变量:
[linuxidc@ubuntu /home 09:13 #57]$declare -x sum
[linuxidc@ubuntu /home 09:21 #58]$export | grep sum
declare -x sum
将sum变成只读属性,不可修改:
[linuxidc@ubuntu /home 09:25 #62]$declare -r sum
[linuxidc@ubuntu /home 09:29 #63]$sum=testgting
bash: sum: readonly variable
让sum变成非环境变量的自定义变量:
[linuxidc@ubuntu /home 09:29 #64]$declare +x sum
[linuxidc@ubuntu /home 09:30 #65]$declare -p sum
declare -ir sum="450"
数组变量类型
[linuxidc@ubuntu /home 09:30 #66]$var[1]="small min"
[linuxidc@ubuntu /home 09:32 #67]$var[2]="big min"
[linuxidc@ubuntu /home 09:32 #68]$var[3]="nice min"
[linuxidc@ubuntu /home 09:32 #69]$echo "${var[1]},${var[2]},${var[3]}"
small min,big min,nice min
与文件系统及程序的限制关系ulimit
列出你目前身份的所有限制数据数值:
[linuxidc@ubuntu /home 09:33 #70]$ulimit -a
限制用户仅能建立10MB一下的容量文件:
[linuxidc@ubuntu /home 09:38 #74]$ulimit -f 10240
[linuxidc@ubuntu /home 09:38 #75]$ulimit -a
尝试创建20M的文件:
[linuxidc@ubuntu ~/Desktop/linux_study 09:41 #81]$sudo dd if=~/Desktop/linux_study/ of=123 bs=1M count=20
[linuxidc@ubuntu ~/Desktop/linux_study 09:41 #82]$ll
total 8
drwxrwxr-x 2 linuxidc linuxidc 4096 Oct 30 09:41 ./
drwxr-xr-x 3 linuxidc linuxidc 4096 Oct 30 07:43 ../
-rw-r--r-- 1 root root 0 Oct 30 09:41 123
变量内容的删除、替换与替代
变量内容的删除与替换
将local这两个目录删除掉:
[linuxidc@ubuntu ~/Desktop/linux_study 09:47 #85]$echo $path
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
[linuxidc@ubuntu ~/Desktop/linux_study 09:49 #89]$echo ${path#/*local/bin:}
/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
将sbin替换为SBIN:
linuxidc@ubuntu ~/Desktop/linux_study 13:06 #95]$echo ${path/sbin/SBIN}
/usr/local/SBIN:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
[linuxidc@ubuntu ~/Desktop/linux_study 13:06 #96]$echo ${path//sbin/SBIN}
/usr/local/SBIN:/usr/local/bin:/usr/SBIN:/usr/bin:/SBIN:/bin:/usr/games:/usr/local/games
变量的测试与内容替换:
[linuxidc@ubuntu ~/Desktop/linux_study 13:07 #97]$echo $username
# username可能不存在或者为空字符串
[linuxidc@ubuntu ~/Desktop/linux_study 13:09 #98]$username=${username-root}
[linuxidc@ubuntu ~/Desktop/linux_study 13:10 #99]$echo $username
root # 没有设置,所以主动给予名为root的内容
[linuxidc@ubuntu ~/Desktop/linux_study 13:10 #100]$username="linuxidc"
[linuxidc@ubuntu ~/Desktop/linux_study 13:10 #101]$username=${username-root}
[linuxidc@ubuntu ~/Desktop/linux_study 13:10 #102]$echo $username
linuxidc
username-root 就得变量,被测试的选项 ; username- root 变量的内容,在本范例中,这个部分是在给予未设置变量的内容。当然 username:-root则是在变量内容为空或者是未设置,都能够以后面的内容替换。
如果旧变量不存在,我们就以新变量内容替换;但是若旧变量存在,则新变量内容以旧变量替换。
[linuxidc@ubuntu ~/Desktop/linux_study 13:10 #103]$unset str; var=${str-newvar}
[linuxidc@ubuntu ~/Desktop/linux_study 13:18 #104]$echo var="$var",str="$str"
var=newvar,str= # 因为str不存在,所以var为newvar
[linuxidc@ubuntu ~/Desktop/linux_study 13:19 #105]$str="oldvar";var=${str-newvar}
[linuxidc@ubuntu ~/Desktop/linux_study 13:20 #106]$echo var="$var",str="$str"
var=oldvar,str=oldvar # 因为str存在,所以var等于str的内容