bash编程基础及for循环

bash编程要点

变量:

本地变量:只对当前shell进程有效,对当前shell之外的其它shell(包括其父、子等)无效;

环境变量:对当shell进程及其子shell进程有效;

局部变量:仅在当前shell进程中的某段代码空间内有效;通常用于函数本地程序;

位置变量:$1, $2, ...

$1 是传递给该shell脚本的第一个参数

$2 是传递给该shell脚本的第二个参数…

特殊变量:

$# 是传给脚本的参数个数

$0 是脚本本身的名字

[email protected] 是传给脚本的所有参数的列表

$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个

$$ 是脚本运行的当前进程ID号

$? 是显示最后命令的退出状态,0表示执行成功,其他表示执行失败。

变量的引用

${变量名}:{}可以省略,简写为$变量名

引号在变量引用中的作用

“”:双引号,弱引用,会显示变量所表示的值;

‘’:单引号,强引用,显示引号内的内容,不会显示变量的值;

a=1; echo ‘$a’的结果则为$a

``:反引号,命令引用,命令替换,会将引号中命令的执行结果引用;作用同$(COMMAND)

a=`echo1`,echo $a;结果则为1,将echo 1的结果赋值给a,即a=1

声明变量

整形变量的声明:

let VAR_NAME=VALUE

declare-i VAR_NAME=VALUE

环境变量的声明:

exportVAR_NAME=VALUE

declare-x VAR_NAME=VALUE

脚本的格式:

第一行写明解释器,即这个脚本运行是用哪个解释器来解释,例如#!/bin/bash,则使用bash来解释脚本运行,必须第一行顶格写。

其他以#号开头的行均为解释,解释器会自动略过,不会执行

脚本的运行

使用chmod +x 脚本名 赋予脚本执行权限,指明路径运行

直接传递脚本给bash解释器运行,其中

-n:测试脚本中是否有语法错误

-x:将脚本执行的每一步都显示到终端上,以便调试脚本

脚本中的算数运算

$[算数运算式]

let脚本名=算数运算式

$((算数运算式))

$(exprargu1 argu2 argu3)

脚本的流程控制

for循环:

格式:

for 变量 in 列表 ;do

循环体

done

变量在列表中依次取值并将值带进循环体中,列表中的值取尽,则循环执行完毕,循环次数即是列表中值的个数。

列表:包含至少一个元素的字符串集合

(1)  直接给出

(2)  数值列表:{start..end}, 例如:{1..10}

seq LAST:从1到LAST,每隔1取一个值,{seq 3} 表示{1,2,3}

seq FIRST LAST:从FIRST到LAST,每隔1取一个值

seq FIRST STEP LAST:从FIRST到LAST,每隔STEP取一个值;{seq 2 2 10}表示{2,4,6,8,10}

(3)  可用是命令执行结果的列表,使用反引号。

for循环实例

计算1-100之内的所有偶数的和

#!/bin/bash
declare -i  sum=0
for i in `seq 2 2 100`;do
        sum=$[$sum+$i]
done
echo $sum

for循环的特殊情况

(1)for省略,会自动获取脚本参数列表;

(2)C编程风格:

for((变量赋值;循环条件;修正表达式)); do
                CMD1
                CMD2
            done

(3) 循环嵌套:外层循环执行一次,内层循环执行完毕之后再开始执行外层循环,外层循环执行一次,内层循环可能执行多次。

 fori in [LIST1]; do
                CMD1
                forj in [LIST2]; do
                    CMD2
                    ...
                done
            done

for循环进阶实例

打印99乘法表

#!/bin/bash
for i in {1..9};do
        for j in `seq $i`;do
        num=$[$i*$j]
        echo -e -n "$[j]x$[i]=$num\t"
        done
        echo
done

时间: 2024-10-20 04:32:25

bash编程基础及for循环的相关文章

Bash编程基础知识学习第一节

Bash编程基础知识学习 一.bash的由来 1 .什么是Bash 什么是Shell Bash 是GNU Bourne-Again SHell,是目前大多数Linux发行版采用的Shell. Shell 是*nix提供给用户使用的界面.一个操作系统的底层是独立运行的, 用户界面和底层分开,可以最大限度的保证系统稳定.Shell就是一个特殊的程序,负责接受用户的命令,并把系统的响应返回给用户. Bash Shell 一般不需要自己安装,在安装发行版的同时都会安装好. Shell的存在是和登陆相关的

编程基础及分支循环语句

编程基础 程序: 一组能让计算机识别和执行的指令 电子计算机 能够执行程序的机器 现代计算机: 艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家.逻辑学家,被称为计算机科学之父,人工智能之父.图灵提出的著名的图灵机模型为现代计算机的逻辑工作方式奠定了基础 冯·诺依曼著名匈牙利裔美籍犹太人数学家.计算机科学家.物理学家和化学家,数字计算机之父.他提出了以二进制作为数字计算机的数制基础,计算机应该按照程序顺序执行,计算机应该有五大部

BASH编程基础之变量、条件判断

一.前言 在linux中,通常我们所指的脚本编程,指的是bash的脚本编程. bash作为一种过程式的编程语言来说,它应该具备编程语言所应该具备的基本元素,即:变量,流程,函数,数组.今天我们介绍变量以及流程之一的条件判断. 二.变量 1.初识变量 在编程语言中,编程语言有两大种,强类型语言和弱类型语言. 强类型语言中,要求变量的使用要严格符合定义,所有变量都必须先定义后使用.java..NET.C++等都是强制类型定义的. 与其相对应的是弱类型语言:数据类型可以被忽略的语言.它与强类型定义语言

shell脚本编程基础之for循环

循环结构 循环需要有进入条件和退出条件,如果没有退出条件,则就会一直循环下去 for 变量 in 列表:do 循环体 done 生成列表及示例 {1..100}:生成1到100的整数列表 `command`:使用命令生成列表 Example1: #!/bin/bash # declare -i SUM=0 #指明SUM变量是一个整数型变量:变量的值为整数:指定求和变量的初始值为0 for I in {1..100};do let SUM=$[$SUM+$I] #指定SUM变量是一个整数型变量 d

linux基础--Bash编程基础

bash测试是否有语法测试 bash -n file.sh 以调试模式执行脚本 bash -x file.sh shell中定义全局变量 export DATE=`date +%Y%M%D` shell中进行算术运算符 A=3 B=4 如果使用C=$A+$B表示字符串相加,结果为3+4 1.let 算术运算表达式 let C=$A+$B 2.$[算术运算表达式] C=$[$A+$B] 3.$((算术运算符)) C=$(($A+$B)) 4.expr 算术运算符,表达式之间要有空格,并使用命令引用

Java编程基础-选择和循环语句

一.选择结构语句 选择结构:也被称为分支结构.选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码. Java语言提供了两种选择结构语句:if语句和switch语句 1.if语句 if语句有三种语法格式. (1).if语句第一种语法格式(适合一种判断) if(条件表达式){ 语句体; } 执行流程:判断条件表达式的结果,当为为true时,{}中的执行语句体才会执行,否则不执行语句体. 注意: 条件表达式的结果必须是布尔类型:

C++编程基础一 23-while循环

1 // 23-while循环.cpp: 定义控制台应用程序的入口点. 2 // 3 4 #include "stdafx.h" 5 #include <iostream> 6 #include <climits> 7 #include <array> 8 #include<string> 9 using namespace std; 10 11 int main() 12 { 13 //while (判断) 14 //{ 15 // 循

C++编程基础一 21-for循环

1 // 21-for循环.cpp: 定义控制台应用程序的入口点. 2 // 3 4 #include "stdafx.h" 5 #include <iostream> 6 #include <climits> 7 #include <array> 8 #include <string> 9 using namespace std; 10 11 void FlipCharacter(); 12 int main() 13 { 14 //c

Python全栈自动化系列之Python编程基础(while循环)

一.while循环 1)语法: while 条件: 代码块 改变条件的表达式 需求点:打印100遍hello python # 定义一个变量i用来记数,记录打印了多少遍hello python i = 0 while i<100: i = i + 1 print("这是第{}遍打印:hello python".format(i)) 运行结果: 2)死循环:内部条件一直满足(使用while循环时注意死循环) while True: print("hellp python&