当前位置:首页 » 编程软件 » linux脚本运算

linux脚本运算

发布时间: 2023-02-02 10:59:03

linux 脚本 这句话是什么意思

脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。
脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。
脚本通常可以由应用程序临时调用并执行。各类脚本被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。举个最常见的例子,当点击网页上的Email地址时能自动调用Outlook Express或Foxmail这类邮箱软件,就是通过脚本功能来实现的。也正因为脚本的这些特点,往往被一些别有用心的人所利用。例如在脚本中加入一些破坏计算机系统的命令,这样当用户浏览网页时,一旦调用这类脚本,便会使用户的系统受到攻击。所以用户应根据对所访问网页的信任程度选择安全等级,特别是对于那些本身内容就非法的网页,更不要轻易允许使用脚本。通过“安全设置”对话框,选择“脚本”选项下的各种设置就可以轻松实现对脚本的禁用和启用。
linux的应用
#! /bin/bash 这里指:该脚本是由的bash shell来解释的。

Ⅱ 新人请教:如何用Linux中的shell脚本实现计算一个文档的行数

1.
计算行数:
面2
命令都
1>
awk
'END{print
NR}'
a.txt
2>
cat
a.txt
|
wc
-l
2.原
三列
我想让

两列
awk
'{print
$1,
$2+$3}'
a.txt

Ⅲ LINUX:编写一个shell脚本,并利用函数实现数列求和运算

#!/bin/bash
sum=0
if[$#-ne2]
then
echo"Pleaseinputtwonumbers!"
elif[$1-gt$2]
then
echo"."
else
foriin$(seq$1$2)
do
sum=`expr$sum+$i`
done
echo""$1~$2"sumis$sum"
fi
#执行结果
#[root@localhostopt]#./b.sh36
#"3~6"sumis18
#[root@localhostopt]#./b.sh3
#Pleaseinputtwonumbers!
#[root@localhostopt]#./b.sh356
#Pleaseinputtwonumbers!
#[root@localhostopt]#./b.sh32
#.
#[root@localhostopt]#./b.sh325
#"3~25"sumis322

Ⅳ linux中用shell脚本计算100内所有正整数之和

sum=0;
for i in {1..100};do
sum=$(($sum+1));
done;
echo $sum

Ⅳ 学生信的那些事儿之七 - Linux基础之Shell脚本编程

沿着前面的轨迹,接下来是Linux中shell脚本的学习。这对于生信工程师后续处理大量 (海量更合适些) 数据是非常非常重要的,但是同样的,作为一个有点古板的人,对于"脚本"是什么意思我都死磕了好久。主要觉得有些抽象,尤其是跟生信的同事讨论项目分析部分的问题时,他们经常会说道这个词,在他们意识里这是个不言自明的术语,殊不知对外行人而言 (比如我),那简直就是无情的"知识的诅咒"。经常是我假装听懂了,然后继续讨论下面的问题,形成一个模糊的印象。

网络上的解释是:脚本(Script)是一种批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。不知道你能不能看懂,反正我开始的时候真是一知半解。

鸟哥私房菜的解释是:shell script是利用 shell 的功能所写的一个"程序",这个程序是使用纯文本文件,将一些shell的语法与命令(含外部命令)写在里面,搭配正则表达式、管道命令与数据流重定向等功能,以达到我们所想要的处理的目的。不明觉厉,好像更看不懂了···

Jude 的简单粗暴大白话解释是:脚本就是Linux中很多命令按照一定规则的组合,以实现某个特定的功能。Linux中有很多简单的命令,往往只是进行了简单的对话,比如 cd 就是进入到某个目录,简单直接。但是如果我想进入某个目录A,然后在目录A中创建目录B,再在目录B中创建文本C呢?当然可以一步一步操作,如果想要一步到位呢,那就可以用脚本,把三个命令写在一起,一起执行。好像有点啰嗦···

或者从英语的角度去理解,脚本的对应英文是Script,而这个单词的中文释义中还有剧本的意思。剧本就好理解了啊,剧本就是导演(生信工程师)基于某个主旨(要实现的目标)按照一定的手法(规则)所写的一个故事。不管是哪个演员,都得按照剧本演。所以,学好英语对于生信也是有帮助的~

按照脚本的复杂程度可以分为:

这个无需多说,其实就是若干个简单命令的顺序排列,执行脚本后会按照命令的前后关系从前往后一一执行。

相对于简单的基本脚本,结构化的命令脚本可以施加逻辑流程控制,从而改变程序(命令)执行的顺序。基本脚本中的命令就是从上往下执行,但是结构化的命令脚本可以根据逻辑判断重复或者跳过某些命令。

常用的结构化命令(语句)有:

后面还有什么嵌套循环啊啥的,不过我觉得上面的7中命令学到家了,应该可以应付大部分在生信分析里面的应用了。

记得高中的时候,物理老师(也是班主任)在给我们讲解习题时有个有意思的套路:不管什么难题现在下面写个"答:",以示自己解决问题的决心,也是一种正向的心理暗示。脚本编写也是有套路的,不过总的来说还是比较简单。

对于简单的脚本(超级简单的那种),直接几个命令连在一起即可,中间用";"隔开。

对于更长更复杂的脚本,一般需要创建一个文本,并在里面编辑。这就涉及到了文本编辑器,比较常用和简单的一般有nano和vim,实在很简单,规则也容易理解,教程随手可得,不多说。

比如用vim创建了一个脚本之后,具体的语法(套路):

ok,脚本写完了,怎么让脚本开始工作呢?这有涉及到之前讲过的环境变量和相对路径、绝对路径了。方法有三:

就这么多吧,应该有点感觉到了,剩下的就是狂练狂练了~

Ⅵ linux的shell脚本编程,求两数字间所有偶数的和,我是小白,不太懂。

这部分主要讨论数学相关的shell脚本编程。
加法运算
新建一个文件“Addition.sh”,输入下面的内容并赋予其可执行的权限。

复制代码代码如下:
#!/bin/bash
echo “Enter the First Number: ”
read a
echo “Enter the Second Number: ”
read b
x=$(expr "$a" + "$b")
echo $a + $b = $x

输出结果:

复制代码代码如下:

[root@tecmint ~]# vi Additions.sh
[root@tecmint ~]# chmod 755 Additions.sh
[root@tecmint ~]# ./Additions.sh

“Enter the First Number: ”
12
“Enter the Second Number: ”
13
12 + 13 = 25

减法运算

复制代码代码如下:

#!/bin/bash
echo “Enter the First Number: ”
read a
echo “Enter the Second Number: ”
read b
x=$(($a - $b))
echo $a - $b = $x

注意:这里我们没有像上面的例子中使用“expr”来执行数学运算。

输出结果:

复制代码代码如下:

[root@tecmint ~]# vi Substraction.sh
[root@tecmint ~]# chmod 755 Substraction.sh
[root@tecmint ~]# ./Substraction.sh

“Enter the First Number: ”
13
“Enter the Second Number: ”
20
13 - 20 = -7

乘法运算

复制代码代码如下:

#!/bin/bash
echo “Enter the First Number: ”
read a
echo “Enter the Second Number: ”
read b
echo "$a * $b = $(expr $a \* $b)"

输出结果:

复制代码代码如下:

[root@tecmint ~]# vi Multiplication.sh
[root@tecmint ~]# chmod 755 Multiplication.sh
[root@tecmint ~]# ./Multiplication.sh

“Enter the First Number: ”
11
“Enter the Second Number: ”
11
11 * 11 = 12

除法运算

复制代码代码如下:

#!/bin/bash
echo “Enter the First Number: ”
read a
echo “Enter the Second Number: ”
read b
echo "$a / $b = $(expr $a / $b)"

输出结果:

复制代码代码如下:

[root@tecmint ~]# vi Division.sh
[root@tecmint ~]# chmod 755 Division.sh
[root@tecmint ~]# ./Division.sh

“Enter the First Number: ”
12
“Enter the Second Number: ”
3
12 / 3 = 4

数组
下面的这个脚本可以打印一组数字。

复制代码代码如下:

#!/bin/bash
echo “Enter The Number upto which you want to Print Table: ”
read n
i=1
while [ $i -ne 10 ]
do
i=$(expr $i + 1)
table=$(expr $i \* $n)
echo $table
done

输出结果:

复制代码代码如下:

[root@tecmint ~]# vi Table.sh
[root@tecmint ~]# chmod 755 Table.sh
[root@tecmint ~]# ./Table.sh

“Enter The Number upto which you want to Print Table: ”
29
58
87
116
145
174
203
232
261
290

你可以从这里下载这个例子的代码

判断奇偶数

复制代码代码如下:

#!/bin/bash
echo "Enter The Number"
read n
num=$(expr $n % 2)
if [ $num -eq 0 ]
then
echo "is a Even Number"
else
echo "is a Odd Number"
fi

输出结果:

复制代码代码如下:

[root@tecmint ~]# vi EvenOdd.sh
[root@tecmint ~]# chmod 755 EvenOdd.sh
[root@tecmint ~]# ./EvenOdd.sh

Enter The Number
12
is a Even Number
1
2
3
4
5
[root@tecmint ~]# ./EvenOdd.sh

Enter The Number
11
is a Odd Number

Factorial数

复制代码代码如下:

#!/bin/bash
echo "Enter The Number"
read a
fact=1
while [ $a -ne 0 ]
do
fact=$(expr $fact \* $a)
a=$(expr $a - 1)
done
echo $fact

输出结果:

复制代码代码如下:
[root@tecmint ~]# vi Factorial.sh
[root@tecmint ~]# chmod 755 Factorial.sh
[root@tecmint ~]# ./Factorial.sh

Enter The Number
12
479001600

你可以从这里下载这个例子的代码

判断Armstrong数
Armstrong数:在三位的正整数中,例如abc,有一些可能满足(a^3)+(b^3)+(c^3)=abc,即各个位数的立方和正好是该数的本身。这些数即称为Armstrong数。

复制代码代码如下:

#!/bin/bash
echo "Enter A Number"
read n
arm=0
temp=$n
while [ $n -ne 0 ]
do
r=$(expr $n % 10)
arm=$(expr $arm + $r \* $r \* $r)
n=$(expr $n / 10)
done
echo $arm
if [ $arm -eq $temp ]
then
echo "Armstrong"
else
echo "Not Armstrong"
fi

输出结果:

复制代码代码如下:

[root@tecmint ~]# vi Armstrong.sh
[root@tecmint ~]# chmod 755 Armstrong.sh
[root@tecmint ~]# ./Armstrong.sh

Enter A Number
371
371
Armstrong
1
2
3
4
5
6
[root@tecmint ~]# ./Armstrong.sh

Enter A Number
123
36
Not Armstrong

判断质数

复制代码代码如下:

#!/bin/bash
echo “Enter Any Number”
read n
i=1
c=1
while [ $i -le $n ]
do
i=$(expr $i + 1)
r=$(expr $n % $i)
if [ $r -eq 0 ]
then
c=$(expr $c + 1)
fi
done
if [ $c -eq 2 ]
then
echo “Prime”
else
echo “Not Prime”
fi

输出结果:

复制代码代码如下:

[root@tecmint ~]# vi Prime.sh
[root@tecmint ~]# chmod 755 Prime.sh
[root@tecmint ~]# ./Prime.sh

“Enter Any Number”
12

“Not Prime”

Ⅶ 新人请教:如何用Linux中的shell脚本实现计算一个文档的行数

1. 计算行数:
下面2个命令都可以
1> awk 'END{print NR}' a.txt
2> cat a.txt | wc -l
2.原来有三列 我想让它变成两列
awk '{print $1, $2+$3}' a.txt

Ⅷ 1.linux系统下shell脚本用case语句编写四则运算 2.linux系统下shell脚本输入数字串。进行反序输出

原来我拿shell写的计算器:
[root@liuxiting testdir]# cat calculator.sh
#!/bin/bash
echo "usage: 1+3 <Enter> ,q <Enter> is quit"
while [ 1 ]
do
read -p "->>" str 1>>/dev/null
a=`echo $str |awk -F '+|-|*|/' '{print $1}'`
if [ $a == q ]
then
break
fi
b=`echo $str |awk -F '+|-|*|/' '{print $2}'`
o=`echo $str |grep -o "[[:punct:]]" | grep -v "\."`
case $o in
+) awk 'BEGIN{printf " =%.2f\n",'$a'+'$b'}';;
-) awk 'BEGIN{printf " =%.2f\n",'$a'-'$b'}';;
\*) awk 'BEGIN{printf " =%.2f\n",'$a'*'$b'}';;
/)if [ $b -eq 0 ]
then
echo 0 Can NOT be denominator!
continue
fi
awk 'BEGIN{printf " =%.2f\n",'$a'/'$b'}';;
#^) awk 'BEGIN{printf " =%.2f\n",'$a'**'$b'}';;
*) echo error;;
esac
done

刚刚写的倒序输出:
[root@liuxiting testdir]# cat XuShuChu.sh
#!/bin/bash
echo "usage: 123456 <Enter>, q <Enter> is quit"
while [ 1 ]
do
echo -n "Pleasw enter number : "
read n
if [ $n == 'q' ]
then
break
fi
sd=0
rev=""
on=$n
echo "$n"
while [ $n -gt 0 ]
do
sd=$(( $n % 10 )) # get Remainder
n=$(( $n / 10 )) # get next digit
rev=$( echo $rev$sd)
done
echo "$on in a reverse order $rev"
done

Ⅸ 在linux下shell脚本中if中用到or怎么写

linux下shell脚本的逻辑的or用运算符 || 表示,if中用到or的写法实例如下:

a=10

b=20

if[[$a-lt 50||$b-gt 50]]

then

echo"返回 true"

else

echo"返回 false"

fi

其中$a-lt100表示a<50 为真;$b-gt 50 表示b>50为假;真 or 假为真。

所以输出结果为:返回 true


(9)linux脚本运算扩展阅读

1、shell中流程控制if基本语法介绍:

if condition

then

command1

command2 ...

commandN

fi


2、shell中的另一个逻辑运算符and (&&)用法实例介绍:

a=10

b=20

if[[$a-lt100&&$b-gt100]]

then

echo"返回 true"

else

echo"返回 false"

fi

输出结果为:返回 false

Ⅹ Linux 在脚本里面使用变量进行计算时怎么才能保留小数位

bc是一个用于数学运算的高级工具,这个精密计算器包含了大量的选项。可以借助它执行浮点数运算并应用一些高级函数:

#!/bin/bash
a=100
b=3
letc=a/b
echo$c
d=`bc<<<'scale=2;100/3'`
echo$d
e=`bc-l<<<'100/3'`
echo$e

上述代码的输出为:

33
33.33
33.33333333333333333333
热点内容
上课用平板是什么配置 发布:2024-05-17 05:29:51 浏览:565
linux指定组 发布:2024-05-17 05:04:39 浏览:86
鲁班算法 发布:2024-05-17 04:59:46 浏览:489
分布钢筋配置有哪些 发布:2024-05-17 04:51:57 浏览:148
轩逸宝来朗逸配置一样哪个平易 发布:2024-05-17 04:48:59 浏览:433
c盘删除缓存文件对系统有影响吗 发布:2024-05-17 04:27:47 浏览:340
python不能输入中文 发布:2024-05-17 04:27:34 浏览:111
小米电视密码设置在哪里 发布:2024-05-17 04:06:12 浏览:426
java正则sql 发布:2024-05-17 04:05:52 浏览:620
51单片机c语言教程郭天祥 发布:2024-05-17 03:46:13 浏览:890