Linux之Shell编程

news/2024/11/24 9:52:03/

变量

nano hello.sh 编辑hello.sh这个shell脚本文件,如写上echo 'hello!!!'。其中,在编辑的最开始加上#!/bin/bash 表示该脚本文件用bash执行,#是注释,#!不是注释。

bash/source/. hello.sh 执行hello.sh,如输出hello!!!

name=zs 定义用户自定义变量name

echo $name 输出用户自定义变量的值为zs

env 查看环境变量

export name 将name用户自定义变量变成环境变量

readonly name 设置name变量为只读

unset name 清除name变量

current_dir=$(pwd) 将pwd执行的结果赋值给current_dir,也可以current_dir=`pwd`(反引号)。

read name 从键盘输入name(read -p "Please input your name:" name就提示键盘输入name)。

read name1 name2  other 输入多个变量,other用于存多输入的变量

echo -e "zs\nzss" 加上-e才能处理转义字符

echo -n "zs" 加上-n则取消默认的末尾换行

变量计算

数的比较

整数计算

expr $a + $b 计算a+b,因linux默认都是字符串故不能直接计算(注意如大于要\>,乘要\*转义)。

c=`expr $a + $b` 通过命令替换将计算结果赋值给c

c=$((a + b))let c=a+b 计算a+b赋值给c(这里运算符+前后可加或不加空格)

浮点数计算

c=$(echo "$a+$b" | bc) 用管道给bc计算浮点数a+b,也可以单独写bc然后边读边计算浮点数。

c=`echo "$a+$b" | bc` 用反引号命令替换也可以计算浮点数a+b然后赋值给c

字符串比较

逻辑运算

与:-a,或:-o

左移

shift 1 将变量左移1个,比如$2变成$1,$3变成$2以此类推($1等位置参数$?存返回值)。

字符串分割

set -- -rw-r--r-- 1 root root 10272 May 25 10:34 /etc/passwd 执行后$1即-rw-r--r--,$2即1,$3即root以此类推(加--是因-rw-r--r--最前面的-会被识别为option故要前再加--让识别为字符串)。

分支结构

if [ $a -ge $b ] then ... fiif test $a -ge $b then ... fi 中括号那要有空格,即c中的if(a>=b){...}。

if [ $a -ge $b ] then ...elif [ 条件 ];then...else... fi then即c中的{,fi即},then不换行时前要加;。

if ((x%2==0)) 判断x是否是偶数((( expression )) 用于进行数值比较和运算)。

循环结构

for i in zs lisi do...done 两次循环,第一次i即zs,第二次i即lisi,do前有换行,类比python的for。

for i in `seq 1 2 10` do...done 从1到10步长为2的循环,删2则步长为1,类比range但此闭区间。


http://www.ppmy.cn/news/115570.html

相关文章

1599

#include<iostream> using namespace std; int main() {int n,x,a;cin>>n>>a>>x;int s n - a*x;cout<<s;return 0; }

系统学习】Java基础3之反射

Java反射 反射机制概述 Reflection&#xff08;反射&#xff09;是被视为动态语言的关键&#xff0c;反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息&#xff0c;并能直接操作任意对象的内 部属性及方法 加载完类之后&#xff0c;在堆内存的方法区中就产…

DS90UB949

DS90UB949 EVM Q1 1) Generate EDID file Deltacast E-EDID Editor Save as : xxx.bin 2) Flash xxx.bin to EEPROM. 3) Plugin EEPROM into board 4) remove R11: HPD R13:DDC-CLK R14: DDC-SDA

98 服务器系统,Windows 98

Windows 98 当时依旧有了添加/删除面板&#xff0c;但是只能够删除桌面的图标&#xff0c;不像后来的Windows XP系统&#xff0c;后者已经可以通过控制面板进行卸载应用程序等更复杂的操作。 Windows 98 Windows 98全面集成了Internet标准&#xff0c;以Internet技术统一并简化…

HZNUOJ 2689 阅兵

Input 第一行给出一个正整数T&#xff0c;代表接下来会有T组输入。 紧接着给出T行&#xff0c;每行有一个正整数n&#xff08;2≤n≤100&#xff09; Output 请观察样例&#xff0c;画出大小为n的飞机&#xff0c;每两组样例之间有一个空行&#xff0c;行末没有多余空格&…

hdu6999

2021 年百度之星程序设计大赛 - 初赛一Problem 1004 萌新 problem Description 给定两个正整数 a,b&#xff0c;求最小和最大的 c 满足 a mod cb mod c&#xff0c;满足 c-1 为正整数&#xff0c;且 c≤max(a,b)。 思路 正整数a&#xff0c;b除以c有相同的余数&#xff0c;则…

达人评测 i9 12900hk和 i9 11980hk 差距大不大

i9 12900HK拥有14核心20线程&#xff0c;包括6个大核、8个小核&#xff0c;基准频率2.9GHz&#xff0c;最高加速4.8GHz&#xff0c;二级缓存为2.5MB&#xff0c;三级缓存为24MB。选i9 12900HK还是i9 11980hk这些点很重要http://www.adiannao.cn/dy 酷睿 i9-11980HK 采用了 8 核…

r9 5980hs参数 r9 5980hs性能怎么样 相当于什么水平

AMD锐龙9 5980HS是基于Cezanne的大型&#xff08;游戏&#xff09;笔记本电脑的处理器。 R9 5980HS集成了基于Zen 3微体系结构的所有八个内核。 它们的频率为3&#xff08;保证的基本频率&#xff09;至4.8 GHz&#xff08;Turbo&#xff09;&#xff0c;并支持SMT /超线程&…