码迷,mamicode.com
首页 > 系统相关 > 详细

Linux程序设计(二)shell程序设计

时间:2015-08-18 14:00:35      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

1. 管道和重定向

文件描述符0:一个程序的标准输入

文件描述符1:标准输出

文件描述符2:标准错误输出

 

>操作符:把标准输出重定向到一个文件。

>>操作符:将输出内容附加到一个文件中。

 

|操作符:连接进程。

 

2. 作为程序设计语言的shell

2.1 创建脚本

注释以#符号开始。

#!字符告诉系统同一行上紧跟在它后面的寻附上参数是用来执行本文件的程序。

2.2 把脚本设置为可执行

chmod +x first

 

 

3. shell的语法

3.1 变量

默认情况下,所有变量被看作字符串并以字符串来存储。如果字符串里包含空格,必须用引号把它们括起来。

在shell中,通过在变量名前加 一个$符号来访问它的内容。当为变量赋值时,只需变量名。

zhangxin@zhangxin-VirtualBox:~/mypro$ salutation=hello
zhangxin@zhangxin-VirtualBox:~/mypro$ echo $salutation
hello
zhangxin@zhangxin-VirtualBox:~/mypro$ salutation = hello world
salutation:未找到命令
zhangxin@zhangxin-VirtualBox:~/mypro$ salutation=hello world
zhangxin@zhangxin-VirtualBox:~/mypro$ echo $salutation
hello world
zhangxin@zhangxin-VirtualBox:~/mypro$ salutation=7+5
zhangxin@zhangxin-VirtualBox:~/mypro$ echo $salutation
7+5

使用read命令将用户的输入赋值给一个变量。

zhangxin@zhangxin-VirtualBox:~/mypro$ read salutation 
ni hao , xiao ming
zhangxin@zhangxin-VirtualBox:~/mypro$ echo $salutation
ni hao , xiao ming

 

与PHP语法类似,把带有$字符的变量放在双引号中,程序执行到这一行时会把变量替换为它的值;

如果把它放在单引号中,就不会发生替换现象。

在$字符前面加上一个\字符,会取消它的特殊含义。

#!/bin/sh

myvar="Hi there"

echo $myvar
echo "$myvar"
echo $myvar
echo \$myvar

echo Enter some text
read myvar

echo $myvar now equals $myvar
exit 0
~        

 

执行这个脚本:

zhangxin@zhangxin-VirtualBox:~/mypro$ ./myvar.sh 
Hi there
Hi there
$myvar
$myvar
Enter some text
good bye 
$myvar now equals good bye

 

Linux程序设计(二)shell程序设计

标签:

原文地址:http://www.cnblogs.com/sdlypyzq/p/4738560.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!