當前位置:首頁 » 編程軟體 » 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-04-30 00:34:59 瀏覽:73
編譯原理上機實驗構建預測分析器 發布:2024-04-30 00:05:47 瀏覽:571
安卓手機的應用商店是哪個 發布:2024-04-29 23:50:18 瀏覽:411
pythonbinascii 發布:2024-04-29 23:23:00 瀏覽:39
安卓怎麼讓運存變大 發布:2024-04-29 23:21:53 瀏覽:459
springmd5加密 發布:2024-04-29 23:03:50 瀏覽:31
如何選擇伺服器業務量 發布:2024-04-29 22:49:28 瀏覽:446
php怎樣實現頁面跳轉頁面 發布:2024-04-29 22:32:39 瀏覽:696
山東煙台電信dns伺服器ip地址 發布:2024-04-29 21:22:59 瀏覽:137
資料庫數據互通 發布:2024-04-29 21:19:02 瀏覽:155