来看看 发表于 2018-8-25 12:57:02

shell笔记2-colive

  1.shell中取变量的值
  A。$iB${i}
  区别:如果变量的名称后跟其他英文单词,字母或者底线,需用{}隔开$与变量名称。eg:
  anhe@ubuntu:~$ name='colive'
  anhe@ubuntu:~$ echo $name
  colive
  anhe@ubuntu:~$ echo ${name}
  colive
  anhe@ubuntu:~$ echo $name_anhe #空白,因为name_anhe没有赋值
  anhe@ubuntu:~$ echo ${name}_anhe #可以
  colive_anhe
  2.取消和清空变量
  使用unset,unset -v #取消的是变量 unset -f #取消的是函数
  3.anhe@ubuntu:~$ name=anhe
  anhe@ubuntu:~$ echo 'my name is $name'
  my name is $name
  anhe@ubuntu:~$ echo "my name is $name"
  my name is anhe
  anhe@ubuntu:~$
单引号的作用是形成一个所见即所得的字符串,不会进行任何替换变量的结果,但是双引号会替换变量。4.定义环境变量变量的作用范围,仅在各自的shell环境中才有效。export name="colive"或者#name="colive"#export name或者#declare -x name=“colive”一样可以把某一个变量定义为环境变量5.readonly -f *** #定义只读函数 readonly -a #定义只读数组变量anhe@ubuntu:~$ a=2anhe@ubuntu:~$ a=5anhe@ubuntu:~$ a=0anhe@ubuntu:~$ readonly-a aanhe@ubuntu:~$ a=4bash: a: 只读变量6.数组,bash仅支持一维数组欲读取数组值 ${数组名[索引值]}一次读取数组所有值${数组名[@]}读取数组元素的个数${#数组名[@]}或${#数组名
[*]}7.#! /bin/bash与 #! /bin/sh执行script (使用 #!/bin/bash)不调用.bash_profile,.bashrc但会检查BASH_ENV的内容,如果为非空,则执行它指定的启动文件执行script (使用 #!/bin/sh)不调用任何启动文件,没有其他检查环境变量的操作。  8.变量扩展:取字符串切片,字符串长度
  A。 ${变量:位置起点} eg:
  name="colive_an"
  myname=${name:3}
  ive_an
  B。 ${变量:位置起点:长度}
  C。 ${@:1} 由起点开始,取得后面所有的位置参数
  D。 ${@:n}由第n个开始,取得后面所有的位置参数
  E。 ${@:起点位置:个数} 由起点开始,取得指定个数的位置参数
  F。 ${#变量名称} 传回变量值的字符串长度
  G。 ${变量#样式}由前面对比,删除最短的/。eg
  # filename=/usr/bin/neton
  # r=${filename#/*/}
  # echo $r
  bin/neton
  H。 ${变量##样式}由前面对比,删除最长的
  # filename=/usr/bin/neton
  # r=${filename##/*/}
  # echo $r
  #neton
  I。 ${变量%样式} 由后面对比,删除最短的
  J。 ${变量%样式} 从后面对比,删除最长的
  K。 ${变量/样式/}把对比符合的字符串删除一个
  # filename=/usr/bin/neton
  # r=${filename/bin/}
  # echo $r
  /usr//neton
  L。 ${变量//样式/}把对比符合的字符串都删除
  # filename=/usr/bin/neton
  # r=${filename//bin/}
  # echo $r
  usrbinneton
  M。 ${变量名/#模式/}eg:
  # filename='thx,this is colive'
  # r=${filename/#t/}
  # echo $r
  hx,this is colive
  从头开始,删除第一个与模式相符合的
  N。 ${变量/%样式/}从尾开始删除第一个与样式相符合的。
9. 命令替换DIR=$(ls)echo $DIR的作用等于使用了ls
页: [1]
查看完整版本: shell笔记2-colive