2021-05-12 14:32:11
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
相關文章