首頁 > 軟體

Shell指令碼基礎,管道,重定向,Shell變數

2020-06-16 17:33:37

Linux並不用檔名的字尾來區分檔案格式,但是習慣上我們還是用".sh"來表示一個shell指令碼檔案
剛剛寫完的一個shell指令碼程式通常是沒有執行許可權的,需要手動$chmod +x filename.sh來新增可執行許可權

開頭

任何一個shell指令碼程式都必須在開頭用#!標識使用的shell程式,如果用的是bash,那就是#!/bin/sh

注釋

shell指令碼一行中的#之後的部分為註釋

管道

管道是管理Linux十分有用的工具,它可以把前一個命令的結果直接傳遞給後一個命令
$grep "test" file1.txt | wc -l

重定向

所謂重定向即將輸入輸出從標準的輸入輸出重定向到其他位置,比如從檔案輸入或輸出到檔案
> 如果檔案不存在就建立檔案並將內容寫入,如果檔案存在就把檔案清空再寫入內容
>>如果檔案不存在就建立檔案並將內容寫入,如果檔案存在就在原檔案後面寫入內容
$echo "this is echo" > echo_content.txt

定義變數

shell指令碼的變數在使用前不需要"宣告",什麼時候用,就什麼時候定義
shell指令碼的變數也不區分整型、浮點型etc,所有的變數在直譯器看來都是字串
shell指令碼的字串可以使用" "也可以使用' '
Python經驗的程式設計師可能會在運算子的前後大量的使用[空格]來使程式更加整齊,但是shell裡不能這樣,因為直譯器會把[空格]也看做變數名的一部分,導致程式出錯

var="Hello Shell"
cur_ver=1.1

使用變數

shell用$來取一個變數的值,如果有歧義,可以使用{}來對變數進行標識

echo $var 
echo $variable     #直譯器會去尋找**variable**這個變數,但這個變數是不存在的,沒有值
echo ${var}iable    
echo $cur_ver

輸出的結果

hello shell

hello shelliable
1.1

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-09/135147.htm


IT145.com E-mail:sddin#qq.com