1. 程式人生 > 其它 >shell指令碼變數

shell指令碼變數

指令碼案例

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釋出