shell指令碼變數
阿新 • • 發佈:2021-10-20
指令碼案例
vim first.sh
#!/bin/bash #註明使用環境
cd /boot
echo "當前目錄"
pwd
echo"中以vml開頭的檔案包括"
ls -lh vml
bash firsh.sh
當前目錄
/boot
中以vml開頭的檔案包括
ls: cannot access vml: No such file or directory #我沒有
執行指令碼的三個方法
- 需要執行許可權:./root/first.sh
- 不需要執行許可權:進入目錄sh first.sh bash firsh.sh
- 不需要執行許可權:進入目錄source first / first.sh
linux預設的是/bin/bash
重定向
互動式硬體裝置檔案:standard(input,output,error)
- 標準輸入:從該裝置接受使用者輸入的資料 0(預設編號)
- 標準輸出:通過該裝置向用戶輸出資料 1(預設編號)
- 錯誤輸出:通過該裝置報告執行出錯資訊 2(預設編號)
操作
- 標準輸入 = /dev/stdin = 代號0 = <符號(注意,沒有包含<<符號)。
- 標準輸出 = /dev/stdout = 代號1 = >或>>符號。
- 標準錯誤輸出 = /dev/stderr = 代號2 = 使用2>或2>>符號。
:追加,>:覆蓋5
管道符
管道符號意如其名,類似管道一樣將管道入口的資料通過管道傳遞給管道出口。
管道是為了解決程序間通訊問題而存在,它可以讓兩個程序之間的資料進行傳遞,將一個程序的輸出資料傳遞給另一個程序作為其輸入資料。管道左邊是資料給予方,管道右邊是資料接收方。
awk命令
- awk -F “分隔符” ‘/過濾文字/{print $1}’處理檔案 #過濾文本里以分隔符為分割打印出第一行
[root@server01 ~]# df -Th | grep "/$" |awk '{print $6}' #打印出df裡以/結尾的行的第6列 62% [root@server01 ~]# df -Th | grep "/$" |awk '{print $6}' #打印出df裡以/結尾的行的第6列 62
shell變數
自定義變數
就是使用者自己定義的變數,只有使用者自己的shell環境中生效,又稱為本地變數
格式: 變數名=變數值
name=zhengsan
product=2.0
echo $name
zhengsan
echo $product3.0
.0
echo $name$product
zhengsan2.0
特殊符號
echo "$name$product" #可以引入變數
zhengsan2.0
echo '$name $product' #不會引入變數
$name $product
#反撇號:引號內的執行結果作為變數名的變數值(類似於|)
read命令
-p:設定提示資訊
read -p "請輸入你的名字年齡:" name age
請輸入你的名字年齡:zhangsan 20
echo $naem$age
zhangsan20
設定變數生效範圍
export命令:可以將區域性的變數釋出到全域性
echo $product #檢視當前shell變數
2.0
export product #將product變數釋出全域性
bash #切換到新的子shell環境
echo $product
2.0
exit
注意:釋出全域性只能向子shell釋出,不能向上父shell釋出