Shell编程进阶 2.2 shell数组】的更多相关文章

给一个字符指定一个数组 怎么显示数组 a= echo $a a=( ) echo $a echo ${a[@]} echo ${a[*]} 指定显示数组中第几个数字 echo ${a[]} echo ${a[]} echo ${a[]} echo ${a[]} 空格 增加数组 a[]= echo ${a[]} 9echo ${a[*]}1 2 3 4 9 更改数组中的某个元素 a[]= echo ${a[*]} 获得数组的元素个数 echo ${#a[@]} 给随机的0-9组成的10个数组排序…
break    continue   exit break 结束本次for循环 写个for循环脚本 vim for2.sh #!/bin/bash ## 5` do echo $i ] then break fi echo $i done echo "for done" sh for2.sh 1122334for done continue 结束本次循环 #!/bin/bash ## ` do echo $i ] then continue fi echo $i done echo…
创建一个shell脚本 mkdir shell vim first.sh #!/bin/bash ##The first test shell script. ##Written by wangshaojun. ls /tmp/ echo "my home is $HOME" echo "This is first script" 执行shell脚本,两种方法 bash first.sh mysql.sock www_slow.log2015-12-31.wangs…
函数 vim fun.sh #!/bin/bash function mysum() { sum=$[$+$] echo $sum } a= b= mysum $a $b sh fun.sh 6 可以引用函数里面的变量 #!/bin/bash function mysum() { sum=$[$+$] echo $sum } a= b= mysum $a $b echo $sum sh fun.sh 6 6 让函数里的变量只在函数里使用 #!/bin/bash function mysum()…
变量 系统自带变量 echo $PATH $HOME $PWD 自定义变量 # a= # echo $a1 # b= # echo $b2 写与用户交互的脚本 vim .sh #!/bin/bash ## ## read -p "please input a number: " number echo $number sh .sh please input a number:123456 123456 (输入什么,反馈什么) 超时自动退出,-t跟时间.超出5秒自动退出 read -p…
[转]Shell编程进阶篇(完结) 1.1 for循环语句 在计算机科学中,for循环(英语:for loop)是一种编程语言的迭代陈述,能够让程式码反复的执行. 它跟其他的循环,如while循环,最大的不同,是它拥有一个循环计数器,或是循环变数.这使得for循环能够知道在迭代过程中的执行顺序. 1.1.1 shell中的for循环 shell中的for 循环与在c中不同,它包含三种形式:第一种结构是列表for 循环;第二种结构就是不带列表的for循环:第三种就类似于C语言. ①   列表for…
1.1 for循环语句 在计算机科学中,for循环(英语:for loop)是一种编程语言的迭代陈述,能够让程式码反复的执行. 它跟其他的循环,如while循环,最大的不同,是它拥有一个循环计数器,或是循环变数.这使得for循环能够知道在迭代过程中的执行顺序. 1.1.1 shell中的for循环 shell中的for 循环与在c中不同,它包含三种形式:第一种结构是列表for 循环;第二种结构就是不带列表的for循环:第三种就类似于C语言. ①   列表for循环(常用) #!/bin/bash…
第一节:基础 ls -lh  ——可以用户友好的方式看到文件大小 file 文件名 ——查看文件类型 stat 文件名 ——查看文件当前状态 man 命令/函数名 ——查看详细的帮助文档 man中看某一命令选项的定位技巧  —— 输入/ -n -n前面要有一定的空格 #!/bin/bash echo “Hello World!” chmod 777 hello.sh或chmod a+x hello.sh等 ./hello.sh执行 echo -e选项用来增强,支持转义字符. var=world…
Shell是一个命令解释器.它不仅是操作系统内核与用户之间的绝缘层,同时也是一种功能相当强大的编程语言.一个Shell程序,通常称为脚本,它是一个由系统调用,命令工具,软件包和已编译的二进制包"粘合" 起来的极易使用的工具.事实上,整个UNIX系统命令,软件包和工具都能由一个shell脚本调用.如果这还不够,Shell的内部命令,比如测试和循环结构,都使Shell脚本更强大和更有弹性.Shell脚本在系统管理任务表现非常的出色,并且对于日常反复性的处理工作避免了使用那些结构过于复杂的程…
Bash shell bash shell 是bourne shell 的升级版,“bourne again shell”.ubuntu的默认shell. 预备知识 1. "#!" 名为“sha-bang”,shell编程的开始.本质是一个2字节的文件特殊标记,加上这个能够让系统知道这个是一个科执行的脚本.具体参考man magic.这里注意 "#!"后边的路径必须正确. 2. 执行脚本: (1)可以使用chmod给.sh文件加上可执行权限,然后直接使用 ./scr…
if 语句 if 表达式如果条件命令组为真,则执行 then 后的部分.标准形式: if 判断命令,可以有很多个,真假取最后的返回值 then 如果前述为真做什么 [ # 方括号代表可选,别真打进去了! elif 可以再来个判断,如果签名为假继续尝试这里 then 如果前述为真做什么 ] else 如果全都不行做什么 fi # 结束,就是倒写的 if 啦. 现实生活中一般判断只有一个命令,所以你看到的一般是: if ....; then # 你也可以写成 if 之后换行,这样就不用分号了. ..…
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序.建立文件并以并行的方式协调各个程序的运行.因此,对于用户来说,shell是最重要的实用…
!$:显示上一条命令最后一个参数 $?: 上个命令的退出状态,或函数的返回值. alias xxx="命令":给命令取别名 xxx 通过 vim ~/.bashrc 里编辑,可以来修改别名. <, <<:重定向输出 .>, >>:重定向到文件 管道:| 命令排序 shell通配符 子shell:重新开一个shell执行. (注:souch script.sh  或  .   script.sh 在当前shell里执行)  /script.sh  ba…
目录 Linux和Shell简介 Linux是一套可免费使用和自由传播的类UNIX操作系统.Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令,并把它送入内核去执行.内核是Linux系统的核心部分,从开机自检时就驻留在计算机的内存中,直到计算机关闭为止,而用户的应用程序存储在计算机的硬盘上,仅当需要时才被调入内存.Shell是一种命令解释程序,当用户登录Linux系统时,Shell就会被调入内存执行.Shell独立于内核,它是连接内核和应用程序的桥…
shell注释 以#作为注释符号 shell中没有多行注释,只能一行加一个#号 字符串操作 1.拼接字符串 2.获取字符串长度 string=“khjf” echo ${#string} 3.提取子字符串 string="tynam is a good man" echo ${string:1:4} 数组 相当于多个相同类型的变量组成的集合,shell中不限制数组的大小 定义数组 在shell中,用括号来表示数组,数组元素用“空格”符号分割 一般形式:array=(value0 val…
while 死循环 vim while.sh #!/bin/bash ## while : do date +%T sleep done : 永久帧 查看时间 3秒循环1次 打印1-10 #!/bin/bash ## n=1 ] do echo $n n=$[$n+] done 交互循环 #!/bin/bash ## n= while [ ! -z "$n" ] do read -p "Please input a number:" m n=`echo $m |se…
产生序列的命令 seq 1 2 3 4 5 6 7 8 9 10 seq 1 3 5 7 9  (从1开始增加2显示这个数字,到10结束) seq - 10 8 6 4 2 seq - 10 9 8 7 6 5 4 3 2 1 seq -w 01 02 03 04 05 06 07 08 09 10 seq -w 001 002 003 004 005 006 ....098 099 100 循环1-10 vim for.sh #!/bin/bash ` do echo $i done sh f…
逻辑判断的格式 vim case.sh #!/bin/bash read -p "please input a number:" n m=$[$n%] case $m in ) echo " It is a jishu'" ;; ) echo " It is a oushu." ;; *) echo " Not is a jishu and oushu." esac 输入一串字符 赋值$n $m=$n除以2 判断$m 等于1…
针对文件和目录的逻辑判断 touch .txt .txt ]; then echo ok;fi -f 判断1.txt是否是文件且是否存在,成立输出ok if [-d /tmp/ ]; then echo ok;fi -d 判断tmp是否是目录且存在,成立输出ok -r,w,x 是否可读写执行 vim if2.sh #!/bin/bash read -p "Please input a number:" n m=`echo $n|sed 's/[0-9]//g'` if [ -n &qu…
逻辑判断 vim if.sh #!/bin/bash ## ## a= ] then echo "a>3" fi sh if.sh a>3 vim if2.sh #!/bin/bash ## ## a= ] then echo "a>3" fi ] then echo "a>4" fi sh if2.sh sh if2.sh > -ge 大于 < -lt 小于 == -eq 等于 != -ne 不等于 >…
date命令是显示日期时间的命令 date 2016年 01月 01日 星期五 15:05:01 CST 修改时间的选项是 -s date -s "2016-01-01 12:56:10" 查看日历 cal 全年日历 cal -y 同步服务器的时间 yum install ntp -y ntpdate ntp.fudan.edu.cn date的用途 date +%F 年月日T 时分秒Y 四位的年y 两位的年m 月份d 日W 今年的第几周w 周几H 时M 分S 秒s 距 1970-01…
{}代码块[花括号]. 这个结构也是一组命令代码块,事实上,它是匿名的函数.然而与一个函数所不同的,在代码块里的变量仍然能被脚本后面的代码访问. bash$ { local a;      a=123; } bash: local: can only be used in afunction       a=123{ a=321; }echo "a = $a"   # a = 321   (结果是在代码块里的值)由花括号括起的代码块可以引起输入输出的I/O重定向.#!/bin/bash…
在脚本或其他别的地方出现的特殊字符#注释. 以一个#开头的行 (#!是例外) 是注释行.# 这是一行注释.注释也可以出现在一个命令语句的后面.echo "A comment will follow." # 这里可以添加注释.#                            ^ 注意在#前面可以有空白符 #注释行前面也可以有空白字符. #注意这个注释行的开头是一个TAB键. 在同一行中,命令不会跟在一个注释的后面.因为这种情况下没有办法分辨注释的结尾,命令只能放在同一行的行首.用…
这篇主要讲下 数据的重定向,在shell脚本中有些重要的输出重定向为文件的形式输出来 逻辑方式的多个命令组合,可以很方便的进行一些判断 数据流重定向 数据流重定向:大致上的意思就是本该输出到屏幕上的数据,使用一些特殊方式使他输出到其他地方 ">"  ">>"  数据流输出导向 "<"  "<<"  数据流输入导向 首先明白一个概念,标准输入输出和出错输出: .标准输入(stdin):代码为0…
1. 自定义变量(仅在当前shell生效) 1.1 定义变量 #!/usr/bin/bash ip=115.239.210.27 if ping -c1 $ip &>/dev/null ;then # &>/dev/null: output of ping $ip is null echo "$ip is up." else echo "$ip is down." fi 1.2 输入变量 #!/usr/bin/bash read ip p…
预备知识: 管道:它是一个单向的,可以把前一个的数据输出导向到下一个命令的工具,这样可以实现多个命令组合处理一套数据. 它的符号是  "|"    管道只能处理经过前面一个命令传过来的正确信息,也就是standard output的信息,对于standard error并没有直接处理.一般会忽略. 过程就如上图所示的,前面命令的标准输出变为下一个命令的标准输入. 注意: 管道命令仅处理standard output,对于standard error会予以忽略. 管道命令必须能够接收来自…
Shell编程基础入门     1.shell格式:例 shell脚本开发习惯 1.指定解释器 #!/bin/bash 2.脚本开头加版权等信息如:#DATE:时间,#author(作者)#mail:邮箱,#function(功能),#Version:版本 3.脚本注释(用英文注释 中文可能乱码.) 4.脚本以.sh结尾 不是必须的 5.成对的符号,一次性写全,退格补内容.特殊符号[ xxxx ] 中括号中间内容两边都有空格. 6 .代码有条理性(通过缩进). 2.执行:1.sh xxx.sh…
作者原创作品,转载请注明出处 (一)Shell编程概述 1.1 shell简述 Shell编程和JavaScript非常相似,Shell和JavaScript都是弱类型语言,同时也都是解释型语言.解释型语言需要解释器,JavaScript的解释器是浏览器,Shell脚本的解释器时bash,是一个shell.一个命令行用户接口. 1.2 bash简述 bash在执行或者解释脚本的时候,此bash非彼bash.用户登录进来的时候就用一个bash.通过敲一个命令来解释脚本的时候,是在当前bash中打开…
概述: Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务. Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell. Shell 脚本(shell script),是一种为 shell 编写的脚本程序. 业界所说的 shell 通常都是指 s…
知识内容: 1.shell编程预备知识 2.shell变量 3.表达式与运算符 4.分支循环语句 5.函数 一.shell编程预备知识 1.什么是shell编程 shell是与linux交互的基本工具,是一个命令解释器,它的作用是解释执行用户输入的命令及程序等,有两种执行命令的方式,如下所示: 交互式,用户每输入一条命令,shell就解释执行一条 批处理(batch),需要事先编写一个shell脚本,其中包含若干条命令,让shell一次将这些命令执行完 shell脚本及shell编程:当命令或程…