linux中shell编程怎样运行,shell编程之基础

1、初探shell

#!/bin/bashecho -e 'hello \nworld'

执行结果

60a4e47dac743089aabab2a524aea259.png

echo 是打印输出字符,-e选项是开启转义功能

注意:

在windows下编写的shell脚本直接拿到linux下是无法执行的,因为两个的行结束标志不同

直接将windows下的文件copy到linux,查看其格式

a9afea1f4854a22db19ee12f91401672.png

在图中的bash后面是一个回车,通过cat -A 来查看文件中所有字符时可看到这个回车是^M$

查看linux下的回车

e3445269117b4c666b1fa92a5bcc44f5.png

两个的行结束标志不同,所以会导致shell脚本执行不成功

解决方式,通过dos2unix来进行格式转换

10be5d6ce79c3e741a3a4f408f59c3d4.png

2.历史命令

4312f72ca2c0b585894e9d0d43ba27ed.png

执行history

a6005ab34513f3bc578997c67f314d5a.png

想要执行哪条命令使用!行号

921d43deb3f9d9e6974fe6472630bc24.png

甚至用!字符串,如!hist都可以执行该命令

3.输出重定向

cat hello.sh > he.sh将标准输出重定向到he.sh,先清空he.hs再将结果输出到he.sh

cat hello.sh >> he.sh 以追加的方式输出到he.sh中

cat hello.sh 2> he.sh 将标准出错输出到文件中

cat hello.sh  &>  hello.sh 将正确和错误都写到文件中

ls >> tfg 2>>efg   将命令的正确结果保存到tfg,将错误结果保存早efg中

4.shell中的通配符

ccc6584c5252c583bde5c057ce2762b4.png

特殊字符

‘bbb\nbbb$name’   单引号中的字符都被认为是普通字符

“bbbb\nbbb$name”  双引号中的字符被赋予特殊含义,如\n表示转义,$name表示一个变量

$() 将会引用系统命令,如 echo $(date) 与 date的效果一样

5.shell中的变量

变量值的拼接

name =  123

name = ${name}456

这时name的值为123

接受用户向sh脚本中传递的值

99240703add387eeae151029973e2de8.png

一个简单的例子

b2f719c454b257c4f46e03f9369f3176.png

c4837a40a424d8cffa0af3bf0ac97383.png

这里进行了数字相加运算,两个变量在数值相加的时候必须使用$(())将其包起来

$* 与 $@

$*是将输入参数看成一个整体,像字符串;而$@将参数分开对待,就像一个数组

24d6213d597ca3a97fcb46f544ee6f6e.png

b4659ca267101ea263204eb29291707b.png

6、预定义变量

c5f70bc0cc0f2c330ab69d8b768967fd.png

17b67a318994e8c8d4deea4d237a790a.png

代码中的& 是让find命令在后台运行

d868f57dc03a2e0b75c4299dccbb7680.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值