Linux程序设计--shell程序设计基础(一)

shell语法

一 变量

1.普通变量

在默认情况下变量都被看作字符串并以字符串来存储。当你为变量赋值时你只需要使用变量名,来访问变量内容时需要在变量名前面加上一个$符号,使用方式如下:

$state=hello
$echo $state
hello

变量配合引号的高级使用:
源代码

#!/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

运行结果如下

Hi there
Hi there
$myvar
$myvar
Enter some text
Hello Word
$myvar now equals Hello World

2.环境变量

变量说明
$HOME当前用户的家目录
$PATH系统搜索路径的列表
$PS1命令提示符,通常是$字符
$PS2二级提示符,用来提示后续输入,通常为>字符
$0输入脚本的名字
$1/$2/$3脚本的第1 2 3个参数
$#传递给脚本的参数个数
$$shell脚本的进程号
$IFS输入域分隔符,一般与$*配合使用
$*在一个变量中列出所有的参数,使用$IFS变量分隔开
$@在一个变量中列出所有的参数,常用来代替$*使用,简单方便

下面用一个简单的例子对上述变量进行阐述:

$IFS=''
$set foo bar bam
$echo "$@"
foo bar bam
$echo "$*"
foobarbam
unset IFS
$echo "$*"
foo bar bam

二 条件语句,test或[

下面两段代码意义相等

if test -f fred.c
then
...
fi
if [ -f fred.c ]
then
...
fi

test命令有很多选项,具体使用时可以详细查询。

三 控制结构

1.if语句

if语句的常用语法

if condition1
then 
    statements
elif condition2
then
    statements
else
    statements
fi

2.for语句

for variable in values
do 
    statements
done

在使用for循环时,常用通配符进行扩展。

3.while语句

while conditions
do
    statements
done

4.until语句

until condition
do
    statements
done

循环将反复执行,直到条件为真。

5.case语句

以下面的例程进行说明

#!/bin/sh

echo "Is this morning? Please answer yes or no"
read timeofday

case "$timeofday" in 
yes | y | YES | Y) 
    echo "Good Morning"
    echo "early this morning"
    ;;
[Nn]*)
    echo "Good Afternoon"
    ;;
*)
    echo "Answer is not recognized"
    echo "Please answer yes or no"
    exit 1
    ;;
esac

本示例说明了case条件下多行代码的写法和每条结束语句中需要使用;;符号进行分割。

6.命令列表

命令连接常用&&||,使用方式也类似于C语言中的and和or。如果连接的是一个代码语句块,该语句块可以使用{}花括号括起来。

四 输出重定向

ls -1 > lsoutput.txt

这条命令把ls命令的输出保存到文件lsoutput.txt中。
文件描述符0代表一个程序的标准输入,1代表标准输出,2代表标准错误输出。

ps >> lsoutput.txt

上条语句>>将输出内容附加到lsoutput.txt中,而不是覆盖文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值