linux指令碼輸出兩個數字,按照數字從小到大排序,比如輸入 31,12,輸出結果就是

時間 2021-08-11 16:20:56

1樓:匿名使用者

[root@localhost ~]# a=""; \> b=""; \

> tmp=""; \

> read x; \

> a=$; \

> b=$; \

> if [ $a > $b ] ; then \> tmp=$a; \

> a=$b; \

> b=$tmp; \

> fi; \

> echo $a $b

34,12

12 34

[root@localhost ~]#

可以看出我是直接把**粘到終端上執行的,所以每一行後都有分號作語句分隔用,然後又用\斷行,其實上面這麼多行,是在同一行內。

每行前的 > 是bash shell自動給出,因為它知道**還沒輸完。你只要把下面這樣的**複製上去也就可以:

a=""; \

b=""; \

tmp=""; \

read x; \

a=$; \

b=$; \

if [ $a > $b ] ; then \tmp=$a; \

a=$b; \

b=$tmp; \

fi; \

echo $a $b

用history命令可以查詢到我確實就相當於輸入在同一行:

1022 a=""; b=""; tmp=""; read x; a=$; b=$; if [ $a > $b ] ; then tmp=$a; a=$b; b=$tmp; fi; echo $a $b

1023 history

[root@localhost ~]#

2樓:匿名使用者

[root@bogon ~]# echo 31 12 12 2 1 2 | xargs -n1 | sort -n | sed ':a;n;s/\n/,/;ba'

1,2,2,12,12,31

3樓:

先將逗號都替換為換行符,然後用 sort 排序(加 -g 選項),最後再把換行符還原為逗號,這樣就將排序後的結果顯示在一行上。

# echo "31,12" | sed 's/,/\n/g' | sort -g | sed ':a;n;s/\n/,/;ba'

12,31

其實一樓的也是排序,而且是著名的氣泡排序演算法,其思想就是不斷地從前往後(或從後往前)兩兩比較和交換(就是你所說的顛倒順序)。

人家是比較大小後才顛倒順序的,不是上來就直接顛倒一下 ^_^

輸入4個數字,要求按從小到大順序輸出

4樓:子爵先生

#include

using namespace std;

求個shell指令碼 使用者輸入一個數字,判斷該數字大於、小於一個數字,如100。等於時退出該迴圈

5樓:匿名使用者

[lotto@logging ~]$ cat test.sh#!/bin/sh

i=0while [ 1 -gt 0 ]

doecho -e "請輸入數字:"

read num

if [ $num -gt 100 ]

then

echo "大於100"

elif [ $num -lt 100 ]then

echo "小於100"

else

echo "等於100,退出程式"

break

fii=`expr $i + 1`

done

[lotto@logging ~]$ ./test.sh請輸入數字:

4小於100

請輸入數字:

105大於100

請輸入數字:

100等於100,退出程式

[lotto@logging ~]$

6樓:小米飛貓

#!/bin/bash

while true;do

read -p "enter an integer:" numif [ $num -eq 100 ];thenbreak

fidone

exit 0

#因為你沒說大於,小於後做什麼,只說了一個等於100時退出。

#那我只能認為不管我輸入什麼數,還是重複輸入,直到我輸入100時退出。

linux中編寫shell指令碼,輸出如下序列:1,3,2,4,3,5,4,6,···100 。[附圖]

7樓:匿名使用者

指令碼至少有如下錯抄誤:

改為$或$j,是要取值的

bai啊

expr語句du外面是反引號(鍵盤上esc下面那個鍵)zhi而不是單引號,表示執行dao命令而不是單純一個字串,expr後面的運算子左右兩側要有空格。

if跟[之間是要有空格的,if判斷表示式比較符兩側也要有空格,數字跟 [ ]之間要有空格。

我修正了,自己執行成功生成你要的數列了。你自己對比下吧:

#!/bin/bash

#script name prg8.sh

clear

i=1for ((j=1;j<=98;j++))doecho -n "$j,`expr $j + 2`,"

if [ $i -eq 10 ]

then

echo ""

i=1else

i=$((i+1))

fidone

echo ""

註釋裡已經說了,script name prg8.sh,指令碼名叫prg8.sh,當然,叫什麼名字是你的自由。

8樓:匿名使用者

孩子指令碼語言是不需要編譯的,sh 12.c就可以了,還有shell指令碼一般以sh為副檔名,不要用c,也可以chmod +x 12.c 加可執行許可權,./12.c來執行

9樓:匿名使用者

你只是想輸出1~100這100個數字??

直接用迴圈就行了啊

**#!/bin/bash

for (( i=1; i<=100 ; i=i+1 ))doecho "$i"

done

————————————————————

看錯題目了,當我沒答

兩個數字的算式集,兩個數字的算式集

共有72個算式 1 2 1 2 1,1 3 1 3 1,1 4 1 4 1,1 5 1 5 1,1 6 1 6 1,1 7 1 7 1,1 8 1 8 1 1 9 1 9 1,2 1 2 1 3,2 3 2 3 5,2 4 2 4 6,2 5 2 5 7,2 6 2 6 8,2 7 2 7 9 2 ...

帶有兩個數字的成語,含有兩個數字的成語大全?

一心一意 一分為 二 不三不四 三心二意 四面八方 四通八達 五光十色 五顏六色 六神無主 七零八落 七上八下 五花八門 半斤八兩 九牛一毛 九死一生 九牛二虎之力 2 十全十美 十萬火急 百花齊放 百家爭鳴 千軍萬馬 千載難逢 萬紫千紅 萬水千山 一目十行 一心一意 一五一十 一刀兩斷 一言為定 ...

你知道這兩個數字是什麼嗎,38這兩個數字什麼含義啊?

應該是0和2吧 假定皇帝給的都是非負整數,因為畢竟古代中國好像沒負數概念的 好像只有這兩個數字才符合啊。本題的關鍵在於 過了幾秒鐘 兩個都異口同聲說 知道這兩個數字是什麼了 我想了下,既然如此,那麼必然其中有一個數字是比較特殊的,比如0之類 它乘以所有的數字,積都是 否則兩個人很難以 對方沒有猜出 ...