shell简单入门(一)

感觉看书慢,容易忘记,就上网找例子照着做,琢磨例子中不懂的,然后继续百度。

shell脚本在linux下的重要性就不用多说了吧。从第一个例子开始把:

#!/bin/bash
echo "Hello World !" 

执行的方式参考:http://www.jb51.net/article/53924.htm

修改文件的权限可以参考:http://www.cnblogs.com/hpcpp/articles/6961179.html

这个脚本只是在屏幕输出Hello World !

继续添加内容:

#!/bin/sh
a="hello world!"
num=2
echo "a is : $a num is : ${num}nd"

这里的a和num是用户定义的变量,

用户变量

Shell编程中,使用用户变量无需事先声明,同时变量名的命名须遵循如下规则:

1). 首个字符必须为字母(a-z,A-Z);

2). 中间不能有空格,可以使用下划线(_) ;

3). 不能使用标点符号 ;

4). 不能使用bash里的关键字(可用help命令查看保留关键字) 。

注意这里的变量的左右不能有空格,可以试一下,是不是执行的时候报错,找不到这个变量。

访问变量值

要取用一个变量的值,只需在变量名前面加一个$ 。

这个语法是不是有点像php的语法?

大家看第二个例子:

#!/bin/bash
#name display program
if [ $# -eq 0 ]
then
    echo "Name not provided."
else
    echo "Your name is $1"
fi

这个例子才像点样子了,#号开头的表示是注释。

$1表示什么呢?这个是位置参数,表示输入的第一个参数,如果这样执行文件bash 02.sh

则会输出:

Name not provided.

如果bash 02.sh xiaozi

则输出:

Your name is xiaozi

如果bash 03.sh xiaozi ni hao
输出还是不变,不能完整显示。这是因为有空格,空格分割的字符串看做是不同的字符串。字符串的位置也是从0开始的,把脚本倒数第2行改成$0,执行试试。
输出:

Your name is 02.sh

xiaozi的位置是1,ni的位置是2,hao的位置是3,以此类推。

如果想完整显示后面的字符串应该怎么做呢?

#!/bin/bash
#name display program
if [ $# -eq 0 ]
then
    echo "Name not provided."
else
    echo "Your name is [email protected]"
fi

把倒数第二行改成[email protected]就行,

常用内部变量

$0 相当于C语言main函数的argv[0]
$1$2... 这些称为位置参数(Positional Parameter),相当于C语言main函数的argv[1]argv[2]...
$# 相当于C语言main函数的argc - 1,注意这里的#后面不表示注释
[email protected] 表示参数列表"$1" "$2" ...,例如可以用在for循环中的in后面。
$? 上一条命令的Exit Status
$$ 当前Shell的进程号

if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。

语句以fi结尾,就是把if反过来写,这点需要稍加注意。expression 和方括号([ ])之间必须有空格,[空格expression空格]是这样的,否则会有语法错误。

1) if ... else 语句

if [ expression ]
then
   Statement(s) to be executed if expression is true
fi

2) if ... else ... fi 语句

if [ expression ]
then
   Statement(s) to be executed if expression is true
else
   Statement(s) to be executed if expression is not true
fi

3) if ... elif ... fi 语句

if [ expression 1 ]
then
   Statement(s) to be executed if expression 1 is true
elif [ expression 2 ]
then
   Statement(s) to be executed if expression 2 is true
elif [ expression 3 ]
then
   Statement(s) to be executed if expression 3 is true
else
   Statement(s) to be executed if no expression is true
fi

也可以把then和if写到一行,在 if [ expression 1 ];then

记得在then前面添加一个英文的分号.

参考:http://c.biancheng.net/cpp/view/7005.html

整数操作符号-ge,-gt,-le,-lt, 别忘了加-

    -eq           //等于
    -ne           //不等于
    -gt           //大于
    -lt           //小于
    ge            //大于等于
    le            //小于等于
时间: 2024-10-24 13:51:14

shell简单入门(一)的相关文章

shell简单入门

shell的定义 在计算机科学中,Shell就是一个命令解释器 查看当前系统的shell类型 echo $SHELL 默认的shell是/bin/bash 查看当前系统环境支持的shell # cat /etc/shells 第一个shell脚本 vim创建一个test.sh脚本 写入 #!/bin/bash echo "Hello World !" 运行 ./test.sh 注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.s

shell的select脚本的简单入门

shell的select脚本的简单入门 语法:select var in ...;do break;doneecho $var 示例: #/bin/bash echo "what is your favourite fruit?" select fruit in "Apple" "Banana" "Orange" "Grape" "Other";do break; done echo &

shell的case脚本的简单入门

shell的case脚本的简单入门 示例1: #/bin/bash a=$1 case "$a" in "2") echo 'hell 2';; "3") echo 'hell 3';; *) echo "$a not match";; esac 示例2:判断压缩文件后缀: #/bin/bash file_type=$(file $1) case "$file_type" in "$1: gzip

shell 编程入门,一些简单符合命令

shell 编程入门 1,,shell 特性 linux预设保存1000条输入过的命令,存于 .bash_history . (1,) !! 表示执行上一条命令 #pwd /root #!! pwd /root (2) !n ,n表示数字,表示执行历史第n条指令,例如!1002 #history |grep 1002 1002 pwd #!1002 pwd /root (3)!字符串,表示执行命令历史中最近一次以 pw 开头的命令 #!pw pwd /root (4)alias 自定义命令的别名

Linux下的shell编程入门

通常情况下,我们从命令行输入命令每输入一次就能够得到系统的一次响应.一旦需要我们一个接着一个的输入命令而最后才得到结果的时候,这样的做法显然就没有效率.要达到这样的目的,通常我们利用shell程序或者shell脚本来实现. 一.简介 Shell编程有很多类似C语言和其他程序语言的特征,但是又没有编程语言那样复杂.Shell程序就是放在一个文件中的一系列Linux命令和实用程序,在执行的时候,通过Linux一个接着一个地解释和执行每个命令. 下面我们来看一个简单的shell程序: 1.首先建立一个

android的简单入门学习

话说光配环境就整死我了, 不是说多么难, 是最近google被屏了, 很多sdk里面需要下载的东西都下不下来, 坑爹啊.  最后跟扫拉稀要了一个他配置好的,才运行了. android目录分析: assets 资产目录,存放文件,这些文件会被打包到应用程序的apk(安装包) bin 编译后的文件目录 gen 目录自动生成的目录 project.properties 代表编译的版本 target = "" 来修改编译版本 libs 支持jar包 会被添加到android depend 目录

shell从入门到放弃 第二步 ++

此文承接 shell从入门到放弃 第一步 由此,继续从小白到放弃的第二部分@[email protected] 一.shell的运算符 Shell支持很多运算符,包括:Shell算数运算符.关系运算符.布尔运算符.字符串运算符等 算术运算    算术运算符:        +,-        *, /        %:取余        **:次方            算术运算格式:        (1) let  VAR=算术表达式         (2) VAR=$[算术表达式]  

openBSD简单入门

//**安全是一个过程,而不是一个产品,安全比性能要重要.**// ----------------------------------- 一.前言 二.环境 三.配置网络及镜像源 四.packages安装 五.添加普通用户 六.ports安装 ----------------------------------- 一.前言 OpenBSD是一个多平台的,基于4.4BSD的类UNIX操作系统,是BSD衍生出的三种免费操作系统(另外两种是NetBSD和FreeBSD)之一,被称为世界上最安全的操作

emacs最简单入门,只要10分钟

macs最简单入门,只要10分钟  windwiny @2013   无聊的时候又看到鼓吹emacs的文章,以前也有几次想尝试,结果都是玩不到10分钟就退出删除了. 这次硬着头皮,打开几篇文章都看完一遍,再动手操作.这次好像有些进展   最大的发现,emacs里所有操作都是LISP指令,包括上下左右移动光标,这意味着什么? “emacs是一个伪装成编辑器的操作系统”这句话应该就是这么理解吧,所有的操作都是指令,emacs就像操作系统一样,平时不用关注,实际上打交道的都是操作系统上运行的各种程序.