首页 > 系统相关 >shell的变量——变量的运算

shell的变量——变量的运算

时间:2024-08-04 15:55:43浏览次数:12  
标签:shell 变量 filename se7en sh echo root 运算

1、写一个shell脚本,计算1+2+……+n共n个值的和,n值由用户输入

#原理
[root@se7en shell]# a=10
[root@se7en shell]# seq -s '+' 1 $a
1+2+3+4+5+6+7+8+9+10
[root@se7en shell]# seq -s '+' 1 $a | bc
55

#配置文件
[root@se7en shell]# vim num.sh
[root@se7en shell]# cat num.sh
#!/bin/bash
read -p "please input a number,计算1+2+..+n:" n
echo `seq -s '+' 1 $n`=`seq -s '+' 1 $n | bc`

#提供权限
[root@se7en shell]# chmod a+rx num.sh

#验证
[root@se7en shell]# ./num.sh
please input a number:10
1+2+3+4+5+6+7+8+9+10=55

2、让用户输入一个文件名,分别输出该文件的所在目录和该文件的扩展名

#原理
[root@se7en shell]# filename=/etc/nginx/nginx.conf
[root@se7en shell]# echo ${filename%/*} 
/etc/nginx
[root@se7en shell]# echo ${filename##*.} 
conf

#配置文件
vim filename.sh
cat filename.sh
#!/bin/bash
read -p ":" filename
echo "文件所在目录:${filename%/*}"
echo "文件扩展名:${filename##*.}"

#提供权限
[root@se7en shell]# chmod a+rx filename.sh 

#验证
[root@se7en shell]# ./filename.sh
:/shell/test02/test1.sh
文件所在目录:/shell/test02
文件扩展名:sh

3、判断用户输入的数值是几位数

#原理
a=1234
expr length $a

#配置文件
[root@se7en shell]# vim length.sh
[root@se7en shell]# cat length.sh
#!/bin/bash
read -p "请输入数值:" num
echo 该数为 `expr length $num` 位数

#提供权限
[root@se7en shell]# chmod a+rx length.sh 

#验证
[root@se7en shell]# ./length.sh 
请输入数值:1234
该数为 4 位数

4、统计用户输入的目录文件中文件的个数

#配置文件
vim dirname.sh
cat dirname.sh
#!/bin/bash
read -p "请输入目录:" dirname
echo "$dirname中有`ls $dirname | wc -l`个文件"

#提供权限
[root@se7en shell]# chmod a+rx dirname.sh 

#验证
[root@se7en shell]# ./dirname.sh 
请输入目录:/shell/
/shell/中有10个文件

5、计算用户输入的任意两个整数的和、差、乘积、商、余数

方法一:

#配置文件
[root@localhost test4]# vim 1.sh 
[root@localhost test4]# cat 1.sh 
#!/bin/bash
a=$1
b=$2
echo a+b=$[a+b]
echo a-b=$[a-b]
echo a*b=$[a*b]
echo a/b=$[a/b]
echo a%b=$[a%b]

#提供权限
[root@se7en shell]# chmod a+rx ./1.sh

#验证
[root@localhost test4]# ./1.sh 10 3
a+b=13
a-b=7
a*b=30
a/b=3
a%b=1

方法二:

#配置文件
[root@localhost test4]# vim 2.sh
[root@localhost test4]# cat 2.sh 
#!/bin/bash
read -p "please input two number:" a b
echo $a+$b=$(($a+$b))
echo $a-$b=$[a-b]
echo $a*$b=$[a*b]
echo $a/$b=$[a/b]
echo $a%$b=$[a%b]

#提供权限
[root@se7en shell]# chmod a+rx 2.sh

#检验
[root@localhost test4]# ./2.sh 
please input two number:3 4
3+4=7
3-4=-1
3*4=12
3/4=0
3%4=3

标签:shell,变量,filename,se7en,sh,echo,root,运算
From: https://blog.csdn.net/2301_77147342/article/details/140906377

相关文章

  • Linux--shell脚本语言—/—<2>
    一、shell基本语法1、shell字符串        字符串(String)就是一系列字符的组合。字符串是Shell编程中最常用的数据类型之一(除了数字和字符串,也没有其他类型了)字符串可以由单引号''包围,也可以由双引号""包围,也可以不用引号。它们之间是有区别的。 1) 字符串举......
  • Linux--shell脚本语言—/—<1>
    一、shell简介        Shell是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支        Shel......
  • 【Java】包装类型变量的形参传递,方法内修改后,方法外还是原值?
    背景前几天有个朋友写代码时,想把int变量作为形参传入方法中进行修改后,在方法外能够获取到修改后的变量进行下一步操作。类似这样:classTest{publicstaticvoidmain(String[]args){intx=1;add(x);System.out.println(x);}pub......
  • Shell编程 --基础语法(1)
    文章目录Shell编程基础语法变量定义变量使用变量命令的使用只读变量删除变量传递参数字符串获取字符串长度字符串截取数组定义方式关联数组获取数组的长度总结Shell编程Shell是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和......
  • Shell文本处理秘籍:掌握这11种工具,让数据处理如虎添翼!
    引言在Linux信息环境,文本数据处理是一项基础而重要的技能。对于广大Linux用户而言,掌握Shell环境下的文本处理工具不仅能提高工作效率,还能在面对复杂数据时游刃有余。本文将介绍,那些在文本处理中不可或缺的11种命令工具,让数据处理技能更上一层楼。目录find:find命令无......
  • C++__位运算符:异或运算符 ^
    目的:     了解异或运算符的定义、性质及用法。定义:    二元运算符,符号为^,与位与、位或不同的是,它在二进制中为相同为0,不同为1。而且它还满足这几种运算规则:        1、任何数^0都等于它本身;    2、两个相同的数异或结果为0;    ......
  • c++__位运算符:位与运算符&
    目的:了解位与运算符并加深对它的运用定义:一种二元运算符,符号为&,运用于二进制数中,特性为有0为0。#include<iostream>usingnamespacestd;intmain(){inta=0b1010;//10intb=0b0110;//6//a&b=0b0010;2cout<<(a&b)<<endl;}应用:1、判断奇偶性......
  • Linux shell脚本配置
    shell编程和c语言的比较shell编程:shell是一种解释型语言,擅长文件处理和操作系统管理,开发效率高但执行效率低,移植性好。c语言:编译型语言,先编译再执行,擅长数据计算和数据处理,但开发效率低,执行效率高移植性差。shell脚本编程        shell命令解释器:Bash,Ksh,Csh,Ash......
  • 嵌入式学习---DAY18:shell脚本
    shell脚本文件进程网络HtmlDbshell脚本是一系列shell命令的集合。  shell  命令解释器shell编程:解释型语言、边翻译边执行、擅长文件处理,操作系统管理、开发效率高  cp 1  2、执、效率低、移植性好C语言:编译型语言、先编译再执行、擅长数据计算和数据处理、开发......
  • [vue3] patchFlags与位运算
    Vue3在编译template的过程中会分析模板中的动态部分和静态部分,并标记相应的flag,用于在运行时优化虚拟DOM的更新。Parse:将模板字符串解析成AST;Transform:对AST进行转换和优化,包括识别动态节点和静态节点;CodeGeneration:将转换后的AST生成渲染函数,这个阶段会生成patchFlags。在d......