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