Shell编程之二——read ,array,

一、read 的用法

  作用:读取键盘的输入

  用法:

  ①、简单的shell读取;

  

    注意:如果read后面没有加变量的话,默认赋值给REPLY

[[email protected] opt]# read         (read后面没有加变量名,默认赋值给REPLY)
123456
[[email protected] opt]# echo $REPLY
123456
[[email protected] opt]# 

  ②、从脚本里面读取;

[[email protected] opt]# ll
total 1756
-rw-r--r--. 1 root root     158 May 21 19:49 hosts
-rwxr-xr-x. 1 root root 1783106 May 26 18:36 putty-0.62.tar.gz
-rw-r--r--. 1 root root       3 May 21 19:49 xx
-rwxr-xr-x. 1 root root      79 Jun  5 21:34 xx.sh
[[email protected] opt]# vim zz.sh
[[email protected] opt]# cat zz.sh
#!/bin/bash
echo "qin shu ru ni de ming zi"
read name
echo "huan yin ni: $name"
[[email protected] opt]# chmod +x zz.sh
[[email protected] opt]# ./zz.sh
qin shu ru ni de ming zi
machine
huan yin ni: machine
[[email protected] opt]# 

也可以下面的写法:

[[email protected] opt]# vim zz.sh
[[email protected] opt]# cat zz.sh
#!/bin/bash
#echo "qin shu ru ni de ming zi"
#read name
read -p "qin shu ru ni de ming zi " name       (注意read -p 的用法,不换行直接键盘输入)
echo "huan yin ni: $name"
[[email protected] opt]# ./zz.sh
qin shu ru ni de ming zi machine
huan yin ni: machine
[[email protected] opt]# 

二、数组array的用法

  1、数组的定义;  xx=(aa bb cc dd)

  2、查看数组里面的某一个元素;     echo ${xx[2]}      (注意:下标是从0开始的)

  3、查看数组里面所有的元素;    echo ${xx[*]}     或者 echo ${xx[@]}        *  @

  3、查看数组的卷标(所有下标);  echo ${!xx[*]}    或者 echo ${!xx[@]}      !

  4、查看数组里面元素的个数;    echo ${#xx[*]}   或者 echo ${#xx[@]}      #

  forexample:

  

//数组的定义
[[email protected] opt]# mm=(aa bb cc dd )    (元素之间没有逗号和分号)

//查看数组里面的某一个元素
[[email protected] opt]# echo ${xx[0]}
aa
[[email protected] opt]# echo ${xx[3]}
dd
[[email protected] opt]# echo ${xx[4]}       (数组下标是从0开始的) 

[[email protected] opt]# 

//查看数组里面的所有元素 (*/# 都可以)       
[[email protected] opt]# echo ${xx[*]}
aa bb cc dd
[[email protected] opt]# echo ${xx[@]}
aa bb cc dd
[[email protected] opt]# 

//查看数组的所有下标  (!)
[[email protected] opt]# echo ${!xx[*]}
0 1 2 3
[[email protected] opt]# echo ${!xx[@]}
0 1 2 3
[[email protected] opt]#

//查看数组里面元素的个数  (#)
[[email protected] opt]# echo ${#xx[*]}
4
[[email protected] opt]# echo ${#xx[@]}
4
[[email protected] opt]# 
时间: 2024-10-12 23:58:01

Shell编程之二——read ,array,的相关文章

Linux Shell编程之二选择结构

Shell编程学习之二 一.bash的条件测试 测试方法或者说测试书写: test EXPR [ EXPR ] [[ EXPR ]] 例如:测试变量 User_Name 的之是否为root test $User_Name="root" [ $User_Name == "root" ] [[ $User_Name == "root" ] 根据比较时操作数的类型,测试类型分为: 测试类型 运算符 运算符所代表的意义 示例 整形测试 -gt -lt -

shell编程(二)---shell脚本说明

脚本:命令的堆砌,根据实际情况,结合命令流程控制机制实现的源程序. 脚本的内容说明: 1. 以shebang开始,即#!/bin/bash.这里指定的是脚本解释器的路径. 2. 以#开始的表示注释,用于说明脚本的功能和作用. 3. 脚本的执行:可以直接给脚本赋予x权限,通过使用脚本所在的路径执行脚本,或者是脚本所在的目录添加到PATH变量中. 4. 如果通过sh的方式执行脚本时,脚本可以不需要具有x权限,并且脚本里面的第一行也可以不要写shebang. 示例1: [[email protecte

shell编程(二)

Shell echo命令 echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串.可以使用echo实现更复杂的输出格式控制. 显示转义字符 echo "\"It is a test\"" 结果是:"It is a test" 显示变量 name="OK" echo "$name It is a test" 结果是:OK It is a test 如果变量与其它字符相连的话,需要使用大括号({ }

2、shell 编程习题二

设计一个 shell 程序,添加一个新组为 class1,然后添加属于这个组的 30 个用 户,用户名的形式为 stdxx,其中 xx 从 01 到 30 !#/bin/bash groupadd class1  for I in {1..30} do    if [ $I -le 9 ];then    UN=stu0${I}   else     UN=stu${I}   fi   useradd $UN   mkdir /home/$UN   chown -R $UN /home/$UN

Linux shell编程(二):shell语法

shell 语法 shell 执行命令操作 当shell读取输入时,它将执行一系列操作.如果输入表示注释的开头,则shell将忽略注释符号('#')和该行的其余部分. shell 读取和执行命令时将经过下列操作: 从一个文件(Shell脚本)中读取它的输入,从作为参数的字符串到 "-c" 调用选项(调用Bash),或者从用户的终端. 将输入拆分为单词和操作符,遵守所描述的引用规则.这些标记由"元字符"分隔.此步骤执行别名扩展. 将令牌解析为简单的复合命令. 执行各种

小鸟初学Shell编程(二)编写简单的Shell脚本

Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将多个Linux命令组合保存成一个脚本文件,可直接给其他人使用. 组合命令 进入一个目录,查看目录的文件,这个过程分别需要执行两条命令,分别是cd 和ls. 分开执行两个命令的形式如下: [[email protected] usr]# cd /usr/ [[email protected] usr]

linux shell编程(二) 条件测试

bash中常用的条件测试有三种 条件测试的表达式:[ expression ]  [[ expression]] 第一种:整数测试: -eq 测试两个整数是否相等,比如[ $A -eq $B ] -ne 测试两个整数不等 -gt 测试一个数是否大于另一个数 (great than) -lt 测试一个数是否小于另一个数 (less than) -ge 大于等于 -le 小于等于 -ne 不等于 第二种:文件测试: -e 文件名字或者文件路径 测试文件是否存在 eg:[-e /etc/inittab

Shell 编程(二)

for in 循环语句 #!/bin/bash for x in one two three four do echo number $x done 例:取出passwd中每一行name 并输出 hello + name #!/bin/bash LINES=`wc -l /home/eko/passwd | cut -d' ' -f1` for i in `seq 1 $LINES` do echo "hello,`head -n $i /home/eko/passwd | tail -n 1

Shell编程(二)Bash中调用Python

原文地址:https://www.cnblogs.com/douzujun/p/10360078.html