1、首先检查你机器上有没有expect(我知道ubuntu默认是没有安装的)
ls /usr/bin | grep expect 看看有没有装expect
2、没有的话需要安装
在ubuntu的软件安装中心,搜索tcl 和tk 和expect并安装;
也可以命令行输入sudo apt-get install tcl tk expect
3 环境ready了后,可以在shell脚本中用Here document的方式使用expect命令
例子参见:http://zhidaobaiducom/question/397085991html
Here document格式如下:
expect <<!
这中间都是expect命令
!
为防止错误,建议都顶格写,前面不要留空格。
如果是bash,可以用indirect expansion来搞,语法为 ${!var}。
比如
foo=bar
bar=123
echo ${!foo}
会打印 123
再比如下面的脚本,依次打印脚本的各个输入参数。
#!/bin/bash
var=1
while [ $var -le $# ]
do
echo "Param $var is ${!var}"
let var++
done
不用indirect expansion,也可以用 eval, 比如
#!/bin/bash
var=1
while [ $var -le $# ]
do
eval echo "Param $var is \$$var"
let var++
done
SHELL语言是指UNIX操作系统的命令语言,同时又是该命令语言的解释程序的简称。
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。
扩展资料:
shell的语言的运行场景:
Shell是各个UNIX系统之间通用的功能,并且经过了POSIX的标准化。因此,Shell脚本只要“用心写”一次,即可应用到很多系统上。同时,它运行于高于系统内核的环境,能够简单地执行一些文件系统级的高级操作。因此,之所以要使用Shell脚本是基于:
1、简单性:Shell是一个高级语言,处于内核外层环境;通过它,你可以简洁地表达复杂的操作。
2、可移植性:使用POSIX所定义的功能,可以做到脚本无须修改就可在不同的系统上执行。
3、开发容易:可以在短时间内完成一个功能强大又适用的脚本。
1、Shell英文意思是外壳,用户可以通过Shell和操作系统交互,通俗的讲Shell就是一个解释器。
2、输入命令Shell就解释执行,Shell有很多版本,我们一般使用的都是bash,在Linux输入一条命令可以查看。
一般以#!/bin/sh开头(不是必须要写,但一定要单独一行),指定执行这个脚本的shell程序(也可以用#!/bin/zsh或其他),然后就是堆命令了。Linux的shell脚本支持很多功能,加上Linux高度模块化的命令,完全可以用shell脚本写出复杂的程序。以上只是简单介绍如何开始写shell脚本,如果要写复杂的脚本,还需要深入学习相关知识(如if——fi、case——esac等结构)。当然,还需要给脚本加上可执行权限(chmod+x/filesh),否则可以用sh/filesh方式执行脚本(这里的sh是执行脚本所需shell,命令也可以是zsh/filesh或其他)。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)