UNIX 特殊变量 菜鸟学Linux 第070篇笔记 array,trap,getopts,VNC
array
变量:内容空间,字符型
声名数组
declare -a AA
数组赋值方法
AA[0]=jerry
AA[1]=tom
AA[2]=windy
AA[6]=natasha
AA=(jerry tom w
菜鸟学Linux 第070篇笔记 array,trap,getopts,VNC array 变量:内容空间,字符型 声名数组 declare -a AA 数组赋值方法 AA[0]=jerry AA[1]=tom AA[2]=windy AA[6]=natasha AA=(jerry tom wendy natasha) AA=([0]=jerry [1]=tom [2]=wendy [6]=natasha) 数组如何引用 echo ${AA[1]} 输出该数组第二个元素的值 echo ${#AA[0]}输出该数组第一个元素值的字符长度 echo ${#AA[*]}输出该数组一共包含多少元素(不包含元素值为空的元素) echo ${#AA[@]}输出该数组一共包含多少元素(不包含元素值为空的元素) 信号捕捉并且实现特殊处理 trap (在脚本运行时,当用户为脚本输入某信号时,此命令捕捉到该信号并执行所定义的动作) 1 SIGHUP 2 SIGINT 9 SIGKILL 15 SIGTERM 18 SIGCONT 19 SIGSTOP 此为信号捕捉一个简单的脚本(当用户想中断该脚本时Ctrl+C trap就捕捉到该信号) #!/bin/bash # function CLEAN() { rm -rf /var/tmp/test echo "Cleaning..." } trap 'CLEAN; exit 5' INT mkdir -p /var/tmp/test while true; do touch /var/tmp/test/file-`date +%F-%H-%M-%S` sleep 2 done 再学一个脚本参数 1. getopts 此命令可以为脚本后加选项,并且可以在选项后加参数的值 2. 脚本中getopts后引号所引起的为该脚本可接的选项 3. 引号中的第一个冒号可以去除getopts所提示的错误信息 4. 引号中最后的一个引号表示b选项后可以跟参数UNIX 特殊变量,如要给d也加参数则在d后加入: 5. 特殊变量 OPTARG 即可调用其后所跟的参数 6. 特殊变量 OPTIND 选项索引 可以将选项移动到最后一个选项 如 #vim ./opttest.sh 以下为脚本内容 #!/bin/bash # getopts ":db:" OPT echo $OPT echo $OPTARG 保存退出 执行该脚本时所产生的信息 # ./opttest.sh -b "123" b 123 # ./opttest.sh -d d getopts: OPTARG OPTIND 为脚本生成首部信息 1. 先检测后部所跟的脚本名称是否为已存在文件 如果文件存在并且文件里有内容则打开,(而不进行生成脚本首部) 2. 生成脚本首部信息 3. 让脚本后可接参数 #!/bin/bash # name: mkscript # description: # version: 0.0.1 # author: Winthcloud # data time: 01/04/2017 15:03:00 # Usage: mkscript FILENAME while getopts ":d:" SWITCH; do case $SWITCH in d) DESC=$OPTARG ;; echo "Usage: mkscript [-d DESCRIPTION ] FILENAME" esac done shift $[$OPTIND-1] if ! grep "[^[:space:]]" $1 &> /dev/null; then cat > $1 /dev/null; do read -p "Syntax error, q|Q for quiting, others for editing: " OPT case $OPT in q|Q) echo "Quit." exit 8 ;; *) vim + $1 esac done chmod +x $1 将此脚本保存到/bin 然后加执行权限,以后再写脚本即可自动生成首部 写脚本 getinterface.sh 1. 脚本可接受(i,I,a)选项,每个只可单独使用 [-i interface |-I IP|-a] while getopts ":i:I:" SWITCH; do case $SWITCH in i) SHOWIP $OPTARG [ $? -eq 13 ] && echo "Wrong ethercard." ;; I) SHOWETHER $OPTARG [ $? -eq 14 ] && echo "Wrong IP." ;; *) USAGE ;; esac done 2. 当用户使用-i选项时,显示其指定网卡的IP地址 # ifconfig eth0 | grep -o "inet addr:[0-9\.]\{1,\}" | cut -d: -f2 3. 当用户使用-I选项时,显示其后面的IP所属的网络接口 # ifconfig | grep -B 1 "192.168.11.122" | grep -o "^[^[:space:]]\{1,\}" 4. 当用户单独使用-a选项时,显示所有接口及其IP地址(lo除外) # ifconfig | grep -A 1 "^eth" VNC (Virtual Network Console) 远程桌面 明文传送数据 远程登录Linux用户名为系统用户名,但是密码独立存放 远程连接Linux桌面 1. Linux安装远程VNC软件 vnc-server # yum install vnc-server # rpm -qa vnc* 2. 为要实现远程连接vnc-server的用户配置密码 为当前用户配置vnc密码 # vncpasswd 3. 启动vnc-server # vncserver & (第一次启动时使用) 4. 修改家vnc用户的家目录里的~/.vnc/xstartup # vim ~/.vnc/xstartup 以下两行去#号 # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc 最后一行twm & 改成 gnome-session & 5. 重新启动vnc-server # vncserver -kill :1 # vncserver -kill :# # vncserver & # chkconfig vncserver on 此时客户端即可实现远程连接服务器端 下载软件vnc viewer 连接时记得IP后加:1 :2 如192.168.11.122:1 (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |