shell文字格式

2021-06-25 10:56:56 字數 1575 閱讀 3830

linux的shell種類眾多,常見的有:bourne shell(/usr/bin/sh或/bin/sh)、bourne again shell(/bin/bash)、c shell(/usr/bin/csh)、k shell(/usr/bin/ksh)、shell for root(/sbin/sh),等等。不同的shell語言的語法有所不同,所以不能交換使用。每種shell都有其特色之處,基本上,掌握其中任何一種就足夠了。在本文中,我們關注的重點是bash,也就是bourne again shell,由於易用和免費,bash在日常工作中被廣泛使用;同時,bash也是大多數linux系統預設的shell。在一般情況下,人們並不區分 bourne shell和bourne again shell,所以,在下面的文字中,我們可以看到#!/bin/sh,它同樣也可以改為#!/bin/bash。

#!/bin/sh

#comments

your commands go here

首行中的符號#!告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的shell程式。如果首行沒有這句話,在執行指令碼檔案的時候,將會出現錯誤。後續的部分就是主程式,shell指令碼像高階語言一樣,也有變數賦值,也有控制語句。除第一行外,以#開頭的行就是注釋行,直到此行的結束。如果一行未完成,可以在行尾加上",這個符號表明下一行與此行會合併為同一行。

編輯完畢,將指令碼存檔為filename.sh,檔名字尾sh表明這是乙個bash指令碼檔案。執行指令碼的時候,要先將指令碼檔案的屬性改為可執行的:

chmod +x filename.sh

執行指令碼的方法是:

./filename.sh

下面我們從經典的「hello world」入手,看一看最簡單的shell指令碼的模樣。

#!/bin/sh

#print hello world in the console window

a = "hello world"

echo $a

shell script是一種弱型別語言,使用變數的時候無需首先宣告其型別。新的變數會在本地資料區分配記憶體進行儲存,這個變數歸當前的shell所有,任何子程序都不能訪問本地變數。這些變數與環境變數不同,環境變數被儲存在另一記憶體區,叫做使用者環境區,這塊記憶體中的變數可以被子程序訪問。變數賦值的方式是:

variable_name = variable_value

如果對乙個已經有值的變數賦值,新值將取代舊值。取值的時候要在變數名前加$,$variable_name可以在引號中使用,這一點和其他高階語言是明顯不同的。如果出現混淆的情況,可以使用花括號來區分,例如:

echo "hi, $as"

就不會輸出「hi, hello worlds」,而是輸出「hi,」。這是因為shell把$as當成乙個變數,而$as未被賦值,其值為空。正確的方法是:

echo "hi, $s"

單引號中的變數不會進行變數替換操作。

關於變數,還需要知道幾個與其相關的linux命令。

env用於顯示使用者環境區中的變數及其取值;set用於顯示本地資料區和使用者環境區中的變數及其取值;unset用於刪除指定變數當前的取值,該值將被指定為null;export命令用於將本地資料區中的變數轉移到使用者環境區

DOS文字格式轉Unix文字格式Python指令碼

網上一頓查,發現是dos文字格式與unix文字格式有差異的問題。好在ubuntu有dos2unix工具,可以把dos文字格式轉為unix文字格式,使用方法見 但是問題來了,核心原始碼千千萬,不能乙個乙個手動轉吧?所以寫了個python指令碼,這個指令碼的功能是,把當前目錄包括子目錄的所有檔案轉為un...

UGUI 文字格式

先說一種使用 載入text文字的方法 public string loadinfo string path 就是在resources資料夾下,放了乙個儲存為utf 8文字格式,的.txt檔案,然後就可以使用上面方式取到.txt檔案的文字。首行縮排 直接使用網上的取巧辦法,在文字前面加這個東西。jay...

Text文字格式

顏色屬性被用來設定文字的顏色。顏色是通過css最經常的指定 乙個網頁的背景顏色是指在主體內的選擇 body h1h2 文字排列屬性是用來設定文字的水平對齊方式。文字可居中或對齊到左或右,兩端對齊.當text align設定為 justify 每一行被展開為寬度相等,左,右外邊距是對齊 如雜誌和報紙 ...