首页 > 代码库 > linux命令:脚本编程知识点${#VARNAME} ${VARNAME#* } . FILENAME 读取文档内容

linux命令:脚本编程知识点${#VARNAME} ${VARNAME#* } . FILENAME 读取文档内容


脚本编程知识点:

* FILE=/usr/local/src

TEST=${FILE#*/}:$TEST结果为usr/local/src, 以/为关键字,删除从左边数第一个/及关键字/左边的所有字符串。 

DEST=${FILE##*/}:$DEST结果为src,以/为关键字,删除最后一个关键字/及关键字/左边的所有字符串。 从左往右时,*号需在关键字左边


DOTEST=${FILE%/*}:$DOTEST结果为/usr/local,以/为关键字,删除从右边数第一个/及关键字/右边的所有字符串。

DODEST=${FILE%%/*}:$DODEST结果为空,以/为关键字,删除从右边数最后一个/及关键字/右边的所有字符串。 从右往左时,*号需在关键字右边



1、如何获取变量中字符的长度:

 ${#VARNAME}    VARNAME变量名

 Usage: 

[root@localhost ~]# VARNAME1=‘TESTING SERVER‘

[root@localhost ~]# echo "${#VARNAME1}"

14                统计变量VARNAME1的字符长度,空格也占字符长度

2、如何获取屏幕显示大小所占多少行及每行字符总长度

 stty -F /dev/console size

[root@localhost ~]# stty -F /dev/console size

25 80               25表示行数,80表示每行字符总长度

[root@localhost ~]# A=`stty -F /dev/console size`

[root@localhost ~]# echo ${A#* }  以空格为关键字,删除第一个空格及其左边的字符

80


. /etc/sysconfig/network-scripts/ifcfg-eth0 把ifcfg-eth0文件中的内容导入到当前文档中


Usage:

[root@test init.d]# vim /mnt/sysroot/etc/rc.d/init.d/network 

#!/bin/bash
#
# chkconfig:35 09 90
# description: network service
prog=network
. /etc/rc.d/init.d/functions    把/etc/rc.d/init/d/functions文本中的内容添加至该文档中。
CONF=/etc/sysconfig/network-scripts/ifcfg-eth0
. $CONF
NETMASK=22
 
start() {
  ifconfig eth0 $IPADDR/$NETMASK up
  [ -z $GATEWAY ] && route add default gw $GATEWAY
  return 0
}
stop() {
  ifconfig eth0 down
}
status() {
  ifconfig eth0
}
usage() {
  echo "$prog: {start|stop|restart|status|"
}
case $1 in
start)

  start
  success "Config network eth0." ;;
stop)
  stop
  success "Stop network card eth0." ;;
restart)
  stop
  start
  success "Restart network card eth0" ;;
status)
  status ;;
*)
  usage
  exit 1 ;;
esac

本文出自 “学linux历程” 博客,请务必保留此出处http://woyaoxuelinux.blog.51cto.com/5663865/1882485

linux命令:脚本编程知识点${#VARNAME} ${VARNAME#* } . FILENAME 读取文档内容