var=value
var="value $"
var='$var'
mv /usr/bin/file
# 可以擴充套件為1到50
# a b c .. z
將/usr/bin下的file檔案生命名為file.bak,通過 可以不用多敲一遍路徑
$
如果存在變數var則給出字串長度,否則輸出0
$0 or $shell
env
$uid 使用者id,root使用者id為0
$ps1 命令列提示符
$path 環境變數
$home 家目錄
$pwd 當前目錄
$user 當前使用者
$? 上乙個命令執行後的退出狀態,0 ->成功執行
let (())
expr bc
#!/bin/bash
# mathdemo.sh
no1=34
no2=20
let result=no1+no2
echo
$result
res=$[ no1 - no2 ]
ans=$((no1+no2))
ans2=$(expr 3 + 4)
echo
$res
echo
$ans
echo
$ans2
echo
'4*2.89' | bc
stdin
0stdout
1stderr
2< 定向到標準輸入流
> 定向到標準輸出流
2> 定向到標準錯誤流
>> 追加
&> 將stdout 與 stderr 合併並進行重定向
0,1,2是stdin,stdout和stderr的預留描述符。
檔案開啟模式:
- 唯讀模式 <
- 截斷模式 >
- 追加模式 >>
# 建立乙個檔案描述符進行讀取
exec 3
< read.file
# 建立乙個檔案描述符進行截斷寫入
exec 4> write.file
# 建立乙個檔案描述符進行檔案的追加
#!/bin/bash
# 陣列索引從0開始
array=(123
45)index=2
echo
$echo
$#列印出所有陣列的值
echo
$echo
$# 列印陣列長度
echo
$
關聯陣列:
declare -a ass_array
ass_array=([index1]=varlue1 [index2]=varlue2)
# 列出陣列索引
echo
$echo
$
# 設定讀取密碼時不輸出到終端
stty -echo
read password
stty echo
echo input passworld success
bash -x script.sh
-x#將指令碼中執行過的每一行都輸出到stdout
set -x
set +x 禁止除錯
set -v
set +v 禁止列印輸入
通過選項-x可以啟動除錯shell指令碼
function fname()
orfname()
fname #執行函式
fname arg1 arg2 #傳遞引數
$1 第乙個引數
$2 第二個引數
$@ 可以擴充套件為"$1"
"$2"
...export -f fname #匯出函式,函式擴充套件到子程序
cmd_output=$(command)
cmd_output=`command`
可以通過子shell讀取命令的輸出
(command) #會在乙個子程序中執行
out="$(cat file)"
#通過引號引用子shell可以保留空格與換行
#!/bin/bash
# 不回顯地讀取資料
read
-s var
# 顯示提示資訊
read -p "prompt: " var
# 在2秒內讀取資料
read -t 2 var
# e用定界符結束輸入行
read
-d":" var
ifs 預設為空白字元 SHELL 基礎知識
1 什麼是shell?shell的本意是 殼 的意思,其實已經很形象地說明了shell在linux系統中的作用。shell就是圍繞在linux核心之外的乙個 殼 程式,使用者在作業系統上完成的所有任務都是通過shell與linux系 統核心的互動來實現的。shell本身是乙個c語言編寫的程式,是使用...
shell 基礎知識
預設變數 傳入指令碼的命令列引數個數 所有命令列引數值,在各個引數值之間留有空格 0 命令本身 shell檔名 1 第乙個命令列引數 2 第二個命令列引數 區域性變數 在變數首次被賦值時加上local 關鍵字可以宣告乙個區域性變數,例s3 bin bash hello var1 echo hello...
shell 基礎知識
預設變數 傳入指令碼的命令列引數個數 所有命令列引數值,在各個引數值之間留有空格 0 命令本身 shell檔名 1 第乙個命令列引數 2 第二個命令列引數 區域性變數 在變數首次被賦值時加上local 關鍵字可以宣告乙個區域性變數,例s3 bin bash hello var1 echo hello...