尚觀課程-1.Shell基礎

齊澤文的Blog發表於2018-09-07
Shell程式的特點:
1.簡單易學
2.解釋性語言:不需要編譯即可執行
檢視系統預設SHELL echo $SHELL
目錄操作


1.Alt + .
2.按下Esc 後按 .
3.!$

!$示例

4 . cd - 切換當前目錄和上次使用的目錄

這裡寫圖片描述

Shell指令碼程式有兩種執行方式:

1、互動式執行
2、作為程式檔案執行。
通常採用第二種方式較多

互動式指令碼
[root@localhost ~]# for filename in `ls /etc/`
 > do
 > if echo "$filename" | grep "xml"
 > then 
 > echo "$filename"
 > fi
 > done
指令碼
#!/bin/bash
#for迴圈開始
for filename in `ls /etc/ `
do
      #如果檔名包含xml
      if echo "$filename" | grep "xml"
      then
            #輸出檔名
            echo "$filename"
      fi
done
修改檔案許可權
使用者可以通過chmod命令修改檔案的許可權屬性。
chmod [options] filename
[root@localhost chapter1]# chmod u+x ex1-2.sh 
[root@localhost chapter1]# ll
total 4
-rwxr--r--  1   root    root    116 Dec 18 23:11    ex1-2.sh

Shell指令碼的基本元素

對於一個基本的Shell程式來說,應該擁有以下基本元素:
1)第1行的“#!/bin/bash”。
2)註釋:說明某些程式碼的功能。
3)可執行語句:實現程式的功能。

輸出Hello World
#!/bin/bash

#輸出字串
echo "Hello Bash Shell!"
[root@localhost chapter1]# chmod +x ex1-5.sh 
[root@localhost chapter1]# ./ex1-5.sh
Hello, Bash Shell!
指定命令直譯器

命令直譯器用來解釋並執行當前指令碼檔案中的語句,語法:

#!path

例如:#!/bin/bash
Shell註釋
單行註釋
通過在程式碼中增加註釋可以提高程式的可讀性。傳統的Shell只支援單行註釋,其表示方法是一個井號“#”,從該符號開始一直到行尾都屬於註釋的內容。
例如:
#comment1
#comment2
#comment3
...
多行註釋
使用者還可以通過其他的一些變通的方法來實現多行註釋,其中,最簡單的方法就是使用冒號“:”配合here document,語法如下:
:<<BLOCK 

....註釋內容 

BLOCK


#!/bin/bash

:<<BLOCK
本指令碼的作用是輸出一行字串
This is Comment
BLOCK
echo "Hello world!"
如何執行Shell指令碼

在Linux中,如果要執行某個Shell指令碼,使用者可以通過3種方式來實現。這3種方式分別為:
授予使用者執行該指令碼檔案的許可權,使得該指令碼能夠直接執行。
通過呼叫Shell指令碼直譯器來執行。
通過source命令來執行。
例如:

[root@localhost chapter1]# /bin/bash ex1-5.sh 
Hello, Bash Shell!
無執行許可權使用指令碼
[root@localhost chapter1]# bash ex1-5.sh 
Hello, Bash Shell!
[root@localhost chapter1]# sh ex1-5.sh 
Hello, Bash Shell!
[root@localhost chapter1]# source ex1-5.sh 
Hello, Bash Shell!
[root@localhost chapter1]# . ex1-5.sh 
Hello, Bash Shell!

有執行許可權使用指令碼
[root@localhost chapter1]# ./ex1-5.sh 
Hello, Bash Shell!
[root@localhost chapter1]# chapter1/ex1-5.sh 
Hello, Bash Shell!

各類引號的區別

Shell語言中一共有3種引號,分別為
單引號(’ ‘)單引號括起來的字元都作為普通字元出現
雙引號(” “)雙引號括起來的字元,除“$”、“\”、“’”和“””這幾個字元仍是特殊字元並保留其特殊功能外,其餘字元仍作為普通字元對待,
反引號()。反引號括起來的字串被Shell解釋為命令,在執行時,Shell首先執行該命令,並以它的標準輸出結果取代整個反引號(包括兩個反引號)部分

這裡寫圖片描述

反引號``等價於$()

用法為

[root@qzw ~]# echo "user is `whoami` "
user is root 
[root@qzw ~]# echo "user is $(whoami)"
user is root

相關文章