shell學習06 shell常用命令

2021-10-02 11:23:25 字數 3314 閱讀 2226

[kiosk@foundation60 echo]$ cat 01.sh 

#!/bin/bash

name='tom'

age=20

height=180

weight=70

echo

-n "$ is $ years old,"

# -n:表示不換行

echo

-n "$cm in height "

echo

"and $kg in weight"

echo

"thank you!"

[kiosk@foundation60 echo]$ sh 01.sh

tom is 20 years old,180cm in height and 70kg in weight

thank you!

echo -e與 特殊字串結合處理字串

echo -e 特殊字元

說明\a

發出警告聲

\b刪除前乙個字元

\c最後不加上換行符號

\f換行但游標仍舊停留在原來的位置

\n換行且游標移至行首

\r游標移至行首,但不換行

\t插入tab

\v與\f相同

\插入\字元

[kiosk@foundation60 echo]$ echo

-e "hello \nworld"

hello

world

[kiosk@foundation60 echo]$ cat 02.sh

#!/bin/bash

name='tom'

age=20

height=180

weight=70

# echo -e結合\c 強制echo命令不換行

echo

-e "$ is $ years old, \c"

echo

-e "$cm in height \c"

echo

"and $kg in weight"

echo

"thank you!"

[kiosk@foundation60 echo]$ sh 02.sh

tom is 20 years old, 180cm in height and 70kg in weight

thank you!

read的選項

用法-p

用於給出提示符

-n用於限定最多可以有多少字元可以作為有效讀入

-t用於表示等待輸入的時間,單位為秒

-s默讀(不顯示在顯示器上)

[kiosk@foundation60 read]$ cat 01.sh 

#!/bin/bash

# read -p 顯示提示資訊 input("str:")

# 注意:必須在一行內輸入所有的值 不能換行

# 否則 只能給第乙個變數賦值 後續變數賦值都會失敗

read -p "enter some information >" name url age

echo

"**的名字:$name"

echo

"**:$url"

echo

"年齡:$age"

**的名字:zjy

年齡:88

[kiosk@foundation60 read]$ cat 02.sh 

#!/bin/bash

# read -n num

# -n 1 表示只讀取乙個字元

read -n 1 -p "enter a char >" char

printf "\n"

echo

$char

[kiosk@foundation60 read]$ sh 02.sh

enter a char >y

y

-t表示計時器;-s:默讀(不顯示在顯示器上);&&左邊的命令返回真後,&&右邊的命令才能夠被執行。

[kiosk@foundation60 read]$ cat 03.sh 

#!/bin/bash

if read -t 20 -

sp"enter password in 20 seconds(once) > " pass1 && echo

-e "\n" &&

read -t 20 -

sp"enter password in 20 seconds(again)> " pass2 && echo

-e "\n" &&

[$pass1 == $pass2

]#判斷兩次輸入的密碼是否相等

then

echo

"valid password"

else

echo

"invalid password"

fi[kiosk@foundation60 read]$ sh 03.sh

enter password in 20 seconds(once) >

enter password in 20 seconds(again)>

valid password

使用alias命令自定義別名的語法格式為:alias new_name='command'

[kiosk@foundation60 read]$ alias timestap='date +%s'

[kiosk@foundation60 read]$ timestap

1580478892

[kiosk@foundation60 alias]$ cat 01.sh 

#!/bin/bash

alias timestamp='date +%s'

begin=`timestamp`

sleep 10s

finish=$(timestamp)

differince=$(

(finish -

begin))

echo

"run time: $"

[kiosk@foundation60 alias]$ sh 01.sh

run time: 10

06 shell 判斷分支處理

root rocky script cat bmi.sh bin bash read p 請輸入身高 m為單位 high if high 0 2 0 9 then echo 輸入錯誤的身高 exit 1fi read p 請輸入體重 kg為單位 weight if weight 0 9 then e...

Linux基礎06 Shell變數與vim

vim分為三種模式,一般模式,編輯模式,命令模式。vi 檔名,進入一般模式 可以刪除字元 刪除整行 也可以複製貼上資料,可以移動游標 在一般模式中,按下 i或a或o 進入編輯模式。編輯模式 這時候可以編輯文字。在一般模式中,按下 或 進入指令模式 在一般模式中,按下 wq 儲存後退出,按下 wq 強...

shell學習之 shell呼叫shell

2008 05 06 14 43 18 分類 linux 標籤 字型大小 大中小訂閱 fork是最普通的,就是直接在指令碼裡面用 directory script.sh來呼叫script.sh這個指令碼.執行的時候開乙個sub shell執行呼叫的指令碼,sub shell執行的時候,parent ...