一组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

时间: 2024-11-03 07:00:50

一组Linux Shell Scripting小练习的相关文章

Linux shell中的那些小把戏

我日常使用Linux shell(Bash),但是我经常忘记一些有用的命令或者shell技巧.是的,我能记住一些命令,但是肯定不会只在特定的任务上使用一次,所以我就开始在我的Dropbox账号里用文本文件写下这些Linux shell的小技巧,现在我决定共享它给你.这个表我以后还会更新.记住,这里的一些贴士需要在你的Linux发行版上安装额外的软件. 在bash中检查远程端口是否打开: echo >/dev/tcp/8.8.8.8/53 && echo "open"

Linux Shell的类别

The Bourne Shell When Unix was first born, it had a very basic shell written by Ken Thompson, one of the creators of Unix. The Bourne shell was written by Steve Bourne in 1979 as a scriptable Unix shell. All other shells have a prefix to qualify whic

linux shell 自定义函数方法(定义、返回值、变量作用域)_linux shell

一.定义shell函数(define function) 语法: [ function ] funname [()] { action; [return int;] } 说明: 1.可以带function fun() 定义,也可以直接fun() 定义,不带任何参数. 2.参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值. return后跟数值n(0-255 实例(testfun1.sh): #!/bin/sh fSum 3 2; function fSum

思维导图学 Linux Shell攻略之干货篇 mysql数据库脚本管理系统

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dba10g.blog.51cto.com/764602/1610653 以结果为导向的学习,才是最有效率学习.笔者以前也曾经隔三差五的学习linux shell编程来着.给我的感觉就是,今天学了,后天忘了,一星期之后就白学了. 还好,最近自己平时没啥事,一直照着<linux shell攻略>,学做一些小例子,看着自己写的shell程序,简单的几行程序,实现一些好玩的效果,信心

linux shell rman备份文件的脚本

rman备份脚本 #! /bin/bash su - oracle <<! rman target /<<EOF backup AS COMPRESSED BACKUPSET database include current controlfile format'/orabak/db_%d_%T_%s' plus archivelog format'/orabak/arch_%d_%T_%s' delete allinput; delete noprompt obsolete; e

Linux Shell学习:如何调用Shell中的函数

说起函数调用,相信大家也不会陌生,然而对于初学Shell的我来说,Shell中函数调用方式却有点让我不太习惯,自己也走了不少的弯路,因为传递参数时出了一个很"自然"的错误,也让我吃了不少的苦头,所以总结一下Shell中函数的调用方法. 一.Shell中函数的定义 为了方便程序和管理和模块化并减少代码的重复,函数的确是一个好东西.而Shell中函数的定义有两种方法,如下: function fname() { statements: } 或 fname() { statements; }

Linux Shell学习:第一个Shell程序

这里我首先会介绍一个Shell是什么,再介绍我的第一个Shell程序和从中总结的经验. 一.Shell是什么 在说我的这个Shell程序之前,还是先跟大家说说什么是Shell吧,相信Shell这个词大家一定听过很多了,但是它其实是什么东西呢?其实Shell是一个程序,我们在shell中输入一些命令,它就告诉操作系统内核我们想做什么,好让内核可以控制硬件来正确无误地工作.简单点来说就是,Shell的功能只是提供一个用户操作系统的接口,而这个shell则可以调用其他的程序来完成这些操作,只要能操作应

Linux Shell 编程实战技巧

避免定时任务脚本的常见问题 很多脚本在实际使用的时候往往是以定时任务的方式运行,而非手工运行.但是实现同样功能的脚本在这两种运行方式下可能遇到的问题不尽相同. 以定时任务方式运行的脚本往往会遇到以下几个问题. 路径问题:当前目录往往不是脚本文件所在目录.因此,脚本在引用其使用的外部文件,如配置文件和其它脚本文件时,无法方便得使用相对路径. 命令找不到问题:脚本中使用到的一些外部命令,在手工执行脚本的时候可以正常调用.但是在定时任务下运行则可能出现脚本解析器找不到相关命令的问题. 脚本重复运行问题

Linux shell编程基础 三、shell的基本结构

shell结构大体是由设定变量.内置命令.shell的语法结构.函数组成. 使用实例说明:test.sh #!/bin/bash #说明使用/bin/bash作为这个脚本的解释器 #定义一个函数 function my_fun () { echo "Hello, $1,today is $2" } #定义连个变量 name=$1 today=`date` #函数调用 my_fun "$name" "$today" 上面的这个脚本要想运行还需要做一