shell编程技术之-基础知识

一.脚本结构

linux下shell的脚本,是将一系列命令序列写在一个文本文件,而这个文本文件时可执行的。相对命令行来说,开发效率提高。因此他的构架有2部分构成#!和命令序列。其中#!指明此脚本是用哪个解析器来解析。 例如:

二.基础知识

2.1 变量

shell本允许用户设置和使用自己的变量,变量可以是数字或者字符串,用户无需指定其类型,也无需在使用前定义。

例如:

1 #!/bin/bash
2
3 #2.2
4 a="hello word"
5 b=5
6 echo "A is" $a
7 echo "B is" $b

2.2 参数

同C程序一样,shell本中也可以使用命令行参数

$#:传入脚本的命令行参数个数
 $*:所有命令行参数值,在各个参数值之间留有空格
 $0:命令本身(shell文件名)
 $0:命令本身(shell文件名)
 $1:第一个命令行参数
 $2:第二个命令行参数

例如:

#!/bin/bash

#2.3
echo "number of var:" $#
echo "value of vars" $*
echo "name of script" $0
echo "value of var1" $1
echo "value of var2" $2

终端: ./bash.sh a 3, 结果可以此验证

2.3  数学计算

shell本提供了一个专门的命令expr来计算数学表达式,例如expr 5 +1,但是当要把计算的结果赋值给其他变量的时候,还必须使用反号。var=`expr 20 / 10`。 例如:

#!/bin/bash

#2.4
var1=10
var2=20
var3=`expr $var2 / $var1`
var4=`expr $var2 + $var1`
echo $var3
echo $var4

2.5 流程控制语句

2.5.1

shell脚本中最基本的流程控制语句就是if-then,使用格式:

if [ condition ] (特别提醒:方括号左右两边必须有空格)

then
commands
else
commands
fi

例如:

#!/bin/bash

#2.5.1
var=10
if [ $var -gt 5 ]
then
    echo "the value is greater than 5"
fi

2.5.2

shell本提供了for命令,用于创建类似于c语言编程中for

语句一样的循环。使用格式:

for var in list

do

commands
done

例如:

#!/bin/bash

#2.5.2
list="Sun Mon Tue Wed Thur Fri Sat"
for day in $list
do
    echo $day
done

2.5.3

shell本提供了while命令,用于创建类似于c语言编程中
while语句一样的循环。使用格式:
while condition
do

commands
done

例如:

#!/bin/bash

while [ $var -gt 0 ]
do
    echo $var
    var=`expr $var - 1`
done
时间: 2024-10-14 00:59:48

shell编程技术之-基础知识的相关文章

socket网络编程的一些基础知识

源地址:http://blog.csdn.net/roger_77/article/details/1453049 目录: 1) 什么是套接字? 2) Internet 套接字的两种类型 3) 网络理论 4) 结构体 5) 本机转换 6) IP 地址和如何处理它们 7) socket()函数 8) bind()函数 9) connect()函数 10) listen()函数 11) accept()函数 12) send()和recv()函数 13) sendto()和recvfrom()函数 

学习 shell脚本之前的基础知识

转载自:http://www.92csz.com/study/linux/12.htm  学习 shell脚本之前的基础知识 日常的linux系统管理工作中必不可少的就是shell脚本,如果不会写shell脚本,那么你就不算一个合格的管理员.目前很多单位在招聘linux系统管理员时,shell脚本的编写是必考的项目.有的单位甚至用shell脚本的编写能力来衡量这个linux系统管理员的经验是否丰富.笔者讲这些的目的只有一个,那就是让你认真对待shell脚本,从一开始就要把基础知识掌握牢固,然后要

.net中的并行编程系列-1.基础知识

最近半年一直研究用.net进行并行程序的开发与设计,再研究的过程中颇有收获,所以画了一个图总结了一下并行编程的基础知识点,这些知识点是并行编程的基础,有助于我们编程高性能的程序,里面的某些结构实现机制也蕴含着丰富的软件设计思想,在后续的文章中我会对图里面提到某些数据结构或同步机制的源码进行分析. 注:虽然使用的平台是.net ,但大部分知识点和平台以及语言无关,相关数据结构其他相关平台都有实现,包括优化手段都非常相似. .net中的并行编程系列-1.基础知识,布布扣,bubuko.com

shell 脚本执行和基础知识

当我们给予shell脚本执行的权限后,就可以测试程序了,假设shell脚本文件为hello.sh放在/root目录下.下面介绍几种在终端执行shell脚本的方法:1.切换到shell脚本所在的目录,执行: [[email protected] home]# cd /root/[[email protected] ~]# ./hello.shhello guys!welcome to my Blog:linuxboy.org! 2.以绝对路径的方式执行: [[email protected] ~]

学习shell脚本之前的基础知识(一)(学习记录帖)

记录命令历史:我们敲过的命令,linux会有记录,保存在家目录的.bash_history文件中.(备注:只有用户正常退出当前shell时,当前命令才会保存在.bash_history文件中) “  !”的常见应用:(1)!!表示执行上一条支流:(2)!n  (n表示数字),表示执行历史记录中的第n条命令:(3)!字符串   例如 !ta 表示执行命令历史中最近的已ta开头的命令: 支流和文件名补全:按tab键可帮助补充指令.路径或文件名:连按两次tab键,系统可列出所有的指令或文件: 别名:a

第13章   学习 shell脚本之前的基础知识

1. 设置环境变量 HISTSIZE , 使其能够保存10000条命令历史.  vim /etc/profile  把 HISTSIZE=1000 改为 HISTSIZE=10000 2. 为什么如果这样设置PS1 (PS1="[\[email protected]\h \W]\$ ")  显示的结果和我们预想的不一样,那要如何设置才能恢复原来默认的?  应该是 PS1='[\[email protected]\h \W]$  '     (要用单引号) 3. 想办法把当前目录下的文件

Linux shell编程命令-Linux基础环境命令学习笔记

1.正则表达式 1)^开始 *前一个字符重复0次以上 + 1次以上 ? 0次或者1次 . 一个任意字符(.*连用) {m,n} m到n次 [0-9][a-z] 任意数字或字母 $结束字符 2)sed和awk命令 sed '匹配条件/执行的动作' /etc/passwd sed 's/old/new/g' awk -F: '{print $1}' /etc/passwd 1表示第一列,2表示第二列 -F:表示分隔符为: 2.变量 1)环境变量 系统环境变量(/etc/profile) 用户环境变量

Shell编程之--“grep-awk-sed” 基础用法汇总-菜鸟入门级

[00025]-[2015-09-20]-[00]-[代码注入技术 --- 0 基础知识]

[创建线程] HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes; // NULL DWORD dwStackSize, // 0 LPTHREAD_START_ROUTINE lpStartAddress, // .... LPVOID lpParameter, // .... DWORD dwCreationFlags, // 0 LPDWORD lpThreadId // NULL ); HANDLE CreateRe