加入收藏 | 设为首页 | 会员中心 | 我要投稿 鹰潭站长网 (https://www.0701zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

UNIX 特殊变量 菜鸟学Linux 第070篇笔记 array,trap,getopts,VNC

发布时间:2022-10-17 13:31:10 所属栏目: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

(编辑:鹰潭站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章