一组Linux Shell Scripting小练习

简介:
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://dgd2010.blog.51cto.com/1539422/1718284

# Linux shell将字符串分割成数组

1
2
result=$(facter |  awk  '/ipaddress/ && !/ipaddress_lo/ {print $1 " " $3}' )
array=($result)

# 判断一个变量是否存在(不是判断是否为空)

1
if  [ -z ${var+x} ];  then  echo  "var is unset" else  echo  "var is set to '$var'" fi

# 判断一个变量是否为空

1
2
if  "$var x"  " x"  ];  then  echo  "var is empty" else  echo  "var is set to '$var'" fi
if  [ -z $var ];  then  echo  "var is empty" else  echo  "var is set to '$var'" fi

#系统变量用后还原

# 关于IFS的定义:IFS,Internal Field Separator

# An Internal Field Separator (IFS) is an environment variable that stores delimiting characters.

# It is the default delimiter string used by a running shell environment.

# "$*" expands as "$1c$2c$3", where c is the first character of IFS

# When the expansion occurs within double quotes, it expands to a single word with the value of each parameter separated by the first character of the IFS special variable.

# That is, "$*" is equivalent to "$1c$2c...", where c is the first  char‐acter of the value of the IFS variable. 

# If IFS is unset, the parameters are separated by spaces.  If IFS is null, the parameters are joined without intervening separators.

1
2
3
4
5
6
7
oldIFS= "$IFS" 
IFS= " " 
array=($result)
IFS= "$oldIFS" 
for  in  ${array[@]};  do
echo  $i
done

# 使用facter获取一组key-value

# facter的输出有换行符,必须把换行符替换成空格

# 将换行符替换成空格可以使用awk或sed

# awk -v RS="" '{gsub("\n"," ");print}'

# echo -e "2 \n1" | sed ':a;N;$!ba;s/\n/ /g'

1
2
3
result=$(facter |  awk  '/ipaddress/ && !/ipaddress_lo/ {print $1 " " $3}'  awk  - v  RS= ""  '{gsub("\n"," ");print}' )
array=($result)
array_length=${ #array[@]}

# 输出key

1
2
3
for  (( i = 0; i < $array_length; i=i+2 ));  do
     echo  ${array[$i]}
done

# 输出value

1
2
3
for  (( i = 1; i < $array_length; i=i+2 ));  do
     echo  ${array[$i]}
done

# 输出key-value

1
2
3
4
for  (( i = 0; i < $array_length; i=i+2 ));  do
     j=$i+1
     echo  "${array[$i]} - ${array[$j]}"
done

--end--

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1718284


目录
相关文章
|
9天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
17天前
|
弹性计算 Shell Perl
ecs服务器shell常用脚本练习(二)
【4月更文挑战第1天】shell代码训练(二)
102 1
|
26天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示当前登录到系统的用户信息 who命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示当前登录到系统的用户信息 who命令 使用指南
42 1
|
26天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示目前登入系统的用户信息 w命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示目前登入系统的用户信息 w命令 使用指南
42 2
|
2天前
|
JSON 运维 监控
训练shell常用脚本练习(三)
【4月更文挑战第14天】shell代码训练(三)
9 1
|
5天前
|
存储 弹性计算 Shell
ecs服务器shell常用脚本练习(十)
【4月更文挑战第11天】shell代码训练(十)
135 0
|
6天前
|
弹性计算 Shell Go
ecs服务器shell常用脚本练习(九)
【4月更文挑战第10天】shell代码训练(八)
120 0
|
11天前
|
Shell Linux
【Linux】12. 模拟实现shell
【Linux】12. 模拟实现shell
26 2
|
23天前
|
存储 算法 Shell
【Linux 环境变量相关】深入理解Linux下 CMake、Shell 与环境变量的交互(二)
【Linux 环境变量相关】深入理解Linux下 CMake、Shell 与环境变量的交互
44 0
|
24天前
|
Shell Linux 开发工具
shell的介绍以及Linux权限的讲解
shell的介绍以及Linux权限的讲解
31 2