1. 程式人生 > >linux——shell變數及函式

linux——shell變數及函式

shell變數

1.變數定義:

    變數即在程式執行過程中它的值是允許改變的量,變數是用一串固定的字元來標誌不固定的值的一種方法,變數是一種使用方便的佔位符,用於引用計算機記憶體地址,該地址可以儲存scripts執行時可更改的程式資訊。在shell 中變數是不可能永久儲存在系統中的,必須在檔案中宣告。

2.變數分類

在shell中變數分為環境級變數,使用者級變數,系統級變數, 環境級變數只在當前shell中生效,shell關閉變數丟失, 使用者級變數寫在使用者的骨檔案中,只針對當前使用者有效, 系統級變數被寫在系統的配置檔案/etc/profile中 變數即在程式執行時儲存在記憶體中。 硬碟永久,記憶體臨時的。

3.變數名稱的規範

變數名稱中通常包含大小寫字母,數字,下劃線
變數名稱格式:
WESTOS——LINUX
Westos_Linux
westos_linux

4.變數的定義方法

環境級:
export A=1
使用者級:
vim ~/.bash_profile
export A=1
系統級:
vim /etc/profile
export A=1

4.1 環境級

[root@client ~]# echo $PATH   //檢視環境變數
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@client
~]# a=1 //定義變數a為1 [root@client ~]# echo $a //在當前的程序中輸出 1 [root@client ~]# ps PID TTY TIME CMD 1778 pts/0 00:00:00 bash 1816 pts/0 00:00:00 ps [root@client ~]# sh //進入另一個程序 sh-4.2# ps PID TTY TIME CMD 1852 pts/0 00:00:00 bash 1891 pts/0 00:00:00 sh 1892 pts/0 00:00:00 ps sh-4.2# echo $a //輸出a,此時沒有值,是因為這種定義只能用於當前的程序中,後一個程序與前一個程序的分配的記憶體段不同,無法訪問a的值

這裡寫圖片描述

sh-4.2# 
[root@client ~]# export a=1   //宣告a=1,將其變為公共
[root@client ~]# echo $a
1
[root@client ~]# ps
  PID TTY          TIME CMD
 1778 pts/0    00:00:00 bash
 1817 pts/0    00:00:00 ps
[root@client ~]# sh
sh-4.2# ps
  PID TTY          TIME CMD
 1778 pts/0    00:00:00 bash
 1826 pts/0    00:00:00 sh
 1827 pts/0    00:00:00 ps
sh-4.2# echo $a
1              //此時別的程序也就可以訪問了,但這種定義時臨時的,退出程序後就會失效。

這裡寫圖片描述

4.2 使用者級

[root@client ~]# vim .bash_profile  //編輯使用者檔案
[root@client ~]# cat .bash_profile 
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
export a=1      //新增內容
[root@client ~]# source .bash_profile   //重新整理檔案
[root@client ~]# echo $a
1
[root@client ~]# su - student        //切換到student使用者中
Last login: Fri Jun 22 17:52:25 EDT 2018 on pts/0
[student@client ~]$ echo $a         
//此時變數a無值,檢視不到變數的值是因為是不同的shell環境,新的shell會載入不同的配置檔案覆蓋原來的

這裡寫圖片描述

4.3 系統級

[root@client ~]# vim /etc/profile     //編輯系統檔案
>---新增內容----<
export=2
[root@client ~]# source /etc/profile   //重新整理
[root@client ~]# echo $a  //此時輸出變數值,對比使用者檔案,我們給root的a=1,也能說明系統級變數比使用者級變數的級別高。
2
[root@client ~]# su - student   //切換使用者
Last login: Fri Jun 22 18:15:35 EDT 2018 on pts/0
[student@client ~]$ echo $a    //可以訪問
2

這裡寫圖片描述

5.臨時修改路徑

[root@client ~]# echo $PATH              //檢視系統環境變數
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@client ~]# ls /mnt/*
/mnt/ip_show.sh  /mnt/passwd
[root@client ~]# chmod +x /mnt/*
[root@client ~]# ip_show.sh             //此時不能執行,因為不是絕對路徑
bash: ip_show.sh: command not found...
[root@client ~]# PATH=$PATH:/mnt/       //臨時新增/mnt為環境變數,退出當前shell後後失效
[root@client ~]# echo $PATH 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/mnt/  
[root@client ~]# ip_show.sh             //此時可以用相對路徑執行成功
172.25.254.226

這裡寫圖片描述

6.字元的轉譯變數的宣告

\       轉譯單個字元
” ”   是弱引用,批量轉譯,不能轉義“!”,“/” ,“ ` ”,“$
’ ’   是強引用,批量轉譯 ’ ‘中出現的字元
$()     變數宣告,和` `沒有區別
$[]     等同於(())
${}     系統宣告
echo 1+1     顯示結果為1+1,其中1+1是可變長字元
echo $[1+1]  顯示結果為2,是整形字元


[root@client ~]# a=hello world    //中間的空格需要轉譯
bash: world: command not found...
[root@client ~]# a=hello\ world
[root@client ~]# echo $a
hello world
[root@client ~]# a="hello hello"  //弱轉譯,但可以轉譯空格
[root@client ~]# echo $a
hello hello
[root@client ~]# a=1
[root@client ~]# echo $ab

[root@client ~]# echo $a b
1 b
[root@client ~]# echo 1+1
1+1
[root@client ~]# echo $[1+1]
2

這裡寫圖片描述

7.變數值傳遞

“$”變數值的傳遞
$0 所執行指令碼的名稱
$1 指令碼後的第一串字串
$2 指令碼後的第二塊字串
$3 指令碼後的第三串字串
$# 指令碼後所跟字串的個數
$* 指令碼後跟的所有字串,模式為“1,2,3”,一串
[email protected] 指令碼後跟的所有字串,模式為“1’,”2”,”3”,三串
[root@client mnt]# cat test.sh 
######################################
# Author:       yifan                 #
# Version:                            #
# Mail:                               #
# Date:         2018-49-06/17/18      #
# Description:                        #
#                                     #
###################################### 
#!/bin/bash
echo \$0 is $0
echo \$1 is $1
echo \$2 is $2
echo \$3 is $3
echo \$# is $#
echo \$* is $*
echo \[email protected] is [email protected]
[root@client mnt]# sh test.sh    //不加輸入
$0 is test.sh
$1 is
$2 is
$3 is
$# is 0
$* is
[email protected] is
[root@client mnt]# sh test.sh hello  //一個輸入
$0 is test.sh 
$1 is hello
$2 is
$3 is
$# is 1
$* is hello
[email protected] is hello
[root@client mnt]# sh test.sh hello westos   //兩個輸入
$0 is test.sh
$1 is hello
$2 is westos
$3 is
$# is 2
$* is hello westos
[email protected] is hello westos
[root@client mnt]# sh test.sh hello westos kill  //三個輸入
$0 is test.sh
$1 is hello
$2 is westos
$3 is kill
$# is 3
$* is hello westos kill
[email protected] is hello westos kill

這裡寫圖片描述
這裡寫圖片描述

//證明“$*”模式為一串字元,“$@”為模式為所跟字元個數串字元。
[[email protected] mnt]# vim test1.sh
#!/bin/bash               //指令碼內容
for name in "$*"
do
    echo $name

done     
[[email protected] mnt]# sh -x test1.sh westos linux redhat  //只執行一次
+ for name in '"$*"'
+ echo westos linux redhat
westos linuv redhat
[[email protected] mnt]# vim test1.sh
[[email protected] mnt]# cat test1.sh 
#!/bin/bash        //指令碼內容
for name in "[email protected]"
do 
    echo $name

done

[[email protected] mnt]# sh -x test1.sh westos linux redhat  //執行三次
+ for name in '"[email protected]"'
+ echo westos
westos
+ for name in '"[email protected]"'
+ echo linux
linux
+ for name in '"[email protected]"'
+ echo redhat
redhat

這裡寫圖片描述
這裡寫圖片描述

8.read互動式變數傳遞

Read westos
Read -s westos 隱藏輸入字元
Read -p westos 顯示提示,-p列印

[root@client mnt]# cat test3.sh 
#!/bin/bash
read -p "please give me a number1: " NUM1   
echo $NUM1
read -p "please give me a number1: " -s NUM2  //加密輸出NUM2
echo " "          //輸出空行,換行
echo $NUM2

[root@client mnt]# sh test3.sh
please give me a number1: 5
5
please give me a number1:  
6

這裡寫圖片描述

練習:編寫指令碼,提示輸入使用者名稱和密碼的存放檔案,並判斷檔案是否存在,若不存在,提示不存在,若存在則建立使用者

[root@client mnt]# vim user_creat.sh
#!/bin/bash
read -p "Please input the userfile: " USER  //提示使用者輸入userfile檔案
[ -e $USER ]||{
      echo "$USER is not exist"             //判斷檔案是否存在
      exit 1;
}
read -p "Please input the passwordfilefile: " PASSWORD  //提示使用者輸入passwdfile檔案

[ -e $PASSWORD ]||{
      echo "$PASSWD is not exist"   //判斷檔案是否存在
      exit 1;
}
MAX_LINE=$( wc -l $USER | cut -d " " -f 1);   //統計行數

for LINEMAX in `seq 1 $MAX_LINE`        //迴圈新增
do
        USERNAME=$(sed -n "${LINEMAX}P" $USER)   //取出第i行內容
        PASSWD=$(sed -n "${LINEMAX}P" $PASSWORD)
        useradd "$USERNAME"
        echo "$PASSWD" | passwd --stdin "$USER"     //建立使用者
done

這裡寫圖片描述

9.系統命令別名的設定——alias

alias xie=’vim’ //臨時設定命令別名
vim .bashrc //永久設定使用者級別的命令別名
vim /etc/bashrc //永久設定系統級別的命令別名
unalias xie //刪除系統命令別名

9.1alias xie=’vim’ //臨時設定命令別名

[root@client mnt]# alias    //檢視系統命令設定的別名
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
alias xie='vim'
root@client mnt]# alias xie='vim'   //臨時設定系統命令別名
[root@client mnt]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
alias xie='vim'          //此時新增成功
[root@client mnt]# xie           //此時執行xie可以呼叫vim命令                                                                           
~                                                                               
~                              VIM - Vi IMproved                                
~                                                                               
~                               version 7.4.160                                 
~                           by Bram Moolenaar et al.                            
~                      Modified by <bugzilla@redhat.com>                        
~                 Vim is open source and freely distributable                   
~                                                                               
~                           Sponsor Vim development!                            
~                type  :help sponsor<Enter>    for information                  
~                                                                               
~                type  :q<Enter>               to exit                          
~                type  :help<Enter>  or  <F1>  for on-line help                 
~                type  :help version7<Enter>   for version info                 
~                                                                               
~                                                                               
~                                                                               
[root@client mnt]# exit
logout
Connection to 172.25.254.171 closed.
[kiosk@foundation26 ~]$ ssh [email protected]172.25.254.171  //退出當前shell
[email protected]172.25.254.171's password: 
Last login: Sun Jun 17 20:51:09 2018 from 172.25.254.26
[[email protected] ~]# xie                 //此時命令會失效
bash: xie: command not found...

這裡寫圖片描述
這裡寫圖片描述

9.2.vim .bashrc //永久設定使用者級別的命令別名

[root@client ~]# vim .bashrc       //編輯使用者檔案,永久的設定使用者系統命令的別名
>---新增內容----<
alias xie=’vim’
[root@client ~]# source .bashrc    //重新整理檔案
[root@client ~]# xie               //此時可以呼叫vim命令
[root@client ~]# su - student       //切換到student使用者,此時無法使用
Last login: Sun Jun 17 04:47:27 EDT 2018 on pts/1
[student@client ~]$ xie          
bash: xie: command not found...
[student@client ~]$ su - root 
Password: 
Last login: Sun Jun 17 22:22:37 EDT 2018 from 172.25.254.26 on pts/0

這裡寫圖片描述

9.3.vim /etc/bashrc //永久設定系統級別的命令別名

[root@client ~]# vim /etc/bashrc     //修改系統的配置檔案,設定系統級命令的別名
>---新增內容----<
alias xie=’vim’
[root@client ~]# source /etc/bashrc   
[root@client ~]# su - student        //此時student使用者也可使用
Last login: Sun Jun 17 22:23:54 EDT 2018 on pts/0
[student@client ~]$ xie

這裡寫圖片描述

9.4.unalias xie //刪除系統命令別名

[[email protected] ~]# vim /etc/bashrc     //刪除配置檔案中新增的內容 
[[email protected] ~]# source /etc/bashrc   //重新整理
[[email protected] ~]# alias                 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
alias xie='vim'   //此時系統中還存在這個命令,因為記憶體快取中還有
[[email protected] ~]# unalias xie    //刪除快取中命令
[[email protected] ~]# alias   //此時這個命令就會失效
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[[email protected] ~]# xie
bash: xie: command not found...

這裡寫圖片描述

10.利用命令執行結果設定變數

HOSTNAME=$(hostname) //將hostname執行結果賦值給變數HOSTNAME
HOSTNAME=`hostname`
$? //退出值,預設的退出值是命令在執行完成之後產生的退出值
退出值範圍:[0-255],0表示正確,1表示錯誤,2表示方法不得當
退出值可以用exit命令執行,
例如:exit 6 ,輸入echo $? 時顯示的是6

[root@client ~]# HOSTNAME=$(hostname) //將hostname執行結果賦值給變數HOSTNAME
[root@client ~]# echo $HOSTNAME
client.example
[root@client ~]# HOSTNAME=`hostname`
[root@client ~]# echo $HOSTNAME
client.example
[root@client ~]# sadlasjcal        //錯誤退出
bash: sadlasjcal: command not found...
[root@client ~]# echo $?          //退出值為127
127
[root@client ~]# ping 172.25.254.71   //正確退出
PING 172.25.254.71 (172.25.254.71) 56(84) bytes of data.
64 bytes from 172.25.254.71: icmp_seq=1 ttl=64 time=0.127 ms
64 bytes from 172.25.254.71: icmp_seq=2 ttl=64 time=0.144 ms
C64 bytes from 172.25.254.71: icmp_seq=3 ttl=64 time=0.212 ms
64 bytes from 172.25.254.71: icmp_seq=4 ttl=64 time=0.296 ms
C64 bytes from 172.25.254.71: icmp_seq=5 ttl=64 time=0.172 ms
^C
--- 172.25.254.71 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 0.127/0.190/0.296/0.060 ms
[root@client ~]# echo $?   //正確退出值
0

這裡寫圖片描述

練習:寫一個利用exit退出值判斷ip是否通;

[root@client mnt]# vim ping_test.sh 
#!/bin/bash
read -p "Please input one IP : "  IP    //提示使用者輸入IP
ping -c1 -w1 $IP &>/dev/null          //ping IP ,輸出匯入垃圾桶中
CHECK=$(echo $?)        //定義變數CHECK,用來儲存ping命令退出值
[ 0 = $CHECK ]&&{       //判斷退出值是否為0,0即ping同,否則失敗
   echo -e "\033[32m$IP is up ! \033[0m "
} || {
   echo -e "\033[31m$IP is down !\033[0m "
}
[root@client mnt]# sh ping_test.sh    //執行指令碼
Please input one IP : 172.25.254.71
172.25.254.71 is up !  
[root@client mnt]# sh ping_test.sh
Please input one IP : 172.25.254.321
172.25.254.321 is down ! 
[root@client mnt]# vim ping_test.sh

這裡寫圖片描述
這裡寫圖片描述

函式

指令碼中的函式是把一個複雜的語句塊定義成一個字串的方法,可以確保命令的迴圈執行,簡化指令碼長度
利用函式迴圈格式:
Host_Message(){
命令
Host_Message //迴圈
}
Host_Message //呼叫函式

實驗一:編寫指令碼利用函式迴圈,不斷使用ping命令
[root@client mnt]# vim test.sh
#!/bin/bash
PING()    //定義函式
{
      read -p " Please input a ipaddress: " IP
      ping -c1 -w1 $IP &> /dev/null
      PING  //迴圈
}
PING  //呼叫函式
[root@client mnt]# sh test.sh  
 Please input a ipaddress: 172.25.254.1
 Please input a ipaddress: 172.25.254.2
 Please input a ipaddress: 172.25.254.3
 Please input a ipaddress: ^C   //一直迴圈

這裡寫圖片描述
這裡寫圖片描述

實驗二:編寫指令碼利用函式迴圈,不斷使用ping命令,當輸入exit後退出
[root@client mnt]# vim test.sh
#!/bin/bash
PING()
{
      read -p " Please input a ipaddress: " IP
      [ "$IP" = exit ] && {          //判斷輸入為exit時退出
             echo bye
             exit 0
      }
      ping -c1 -w1 $IP &> /dev/null
      PING
}
PING
[root@client mnt]# sh test.sh 
 Please input a ipaddress: 172.25.254.1
 Please input a ipaddress: 172.25.254.2
 Please input a ipaddress: 172.25.254.3
 Please input a ipaddress: exit    //輸入後退出
Bye

這裡寫圖片描述
這裡寫圖片描述

練習:編寫指令碼,利用函式檢測檔案型別
[root@client mnt]# vim file_check.sh
#!/bin/bash
FILE_CHECK()  //定義函式,函式內變數為函式本身變數,呼叫時要賦值
{
     [ "$1" "$2" ]&& {
            echo $2 is a  $3 !
            exit 0

      }
}
[ -e "$1" ]|| {
       echo $1 is not exist !!
}
FILE_CHECK -L $1 link    //呼叫函式
FILE_CHECK -f $1 file
FILE_CHECK -b $1 block
FILE_CHECK -c $1 character
FILE_CHECK -d $1 directory
FILE_CHECK -S $1 socket
[root@client mnt]# sh file_check.sh file_check.sh 
file_check.sh is a file !
[root@client mnt]# sh file_check.sh /dev/vdb
/dev/vdb is a block !
[root@client mnt]# sh file_check.sh /mnt/
/mnt/ is a directory !
[root@client mnt]# sh file_check.sh /etc/system-release
/etc/system-release is a link !

這裡寫圖片描述
這裡寫圖片描述

相關推薦

linux——shell變數函式

shell變數 1.變數定義:     變數即在程式執行過程中它的值是允許改變的量,變數是用一串固定的字元來標誌不固定的值的一種方法,變數是一種使用方便的佔位符,用於引用計算機記憶體地址,該地址可以儲存scripts執行時可更改的程式資訊。在she

Linux---shell變數指令碼中的函式

一、什麼是變數? shell在定義變數的時候,變數名與變數之間不能存在空格,這個大多數的語言的這個不同還是蠻大的,不過定義的規則就其他的語言定義的規則大致相同了。 1) 區域性變數 區域性變數在指令碼或命令中定義,僅在當前shell例項中有效,其他shel

shell中的變數函式

############################1.變數###################################################簡介:   (1)什麼是變數?        變數即在程式執行過程中它的值是允許改變的量,變數是用一串固定的字

linux shell 自定義函式(定義、返回值、變數作用域)介紹

inux shell 可以使用者定義函式,然後在shell指令碼中可以隨便呼叫。下面說說它的定義方法,以及呼叫需要注意那些事項。 一、定義shell函式(define function) 語法: [ function ] funname [()] {     act

全域性變數、類靜態變數函式區域性靜態變數的初始化順序

What is the lifetime of class static variables in C++? First the list of possibilities. Namespace Static Class Static Local Static

linux shell變數

shell簡介 是應用程式,該程式提供了一個介面,使用者通過這個介面訪問作業系統核心服務。 linux的shell分類: Bourne Shell (/usr/bin/sh或、/bin/sh) - Bourne again Shell (/bin/bash)—

linux Shell命令功能

1.命令補全          Tab 單擊補全命令   雙擊顯示經智慧匹配推測可能的命令 2.命令歷史          檢視 history           清空 history -c 3.命令別名          檢視 alias          

linux shell 變數子串

linx變數子串 在本例子中,變數 test=https://www.//cnblogs./com//jjmaokk/p/10135401.html 1,${#parameter} 返回變數$parameter內容的長度(按字元),也適用於特殊變數 例: [[email protected]

Python Flask,Jinja2模板,模板中使用特殊變數函式,閃現資訊,get_flashed_messages()

  在渲染模板時,不需要手動分配,可以直接在模板中使用的模板變數及函式:config、request、url_for()、get_flashed_messages() 在Flask中,有一些特殊的變數和方法是可以在模板檔案中直接訪問的。 config 物件: config

Linux Shell筆記之函式

1.建立函式 #!/bin/bash function func1 {                     function關鍵字建立函式    echo "this is func1" } func2() {                            接近其它語言形式的函式 echo "th

Linux Shell 變數自加

declare -i iv=$svnv let iv+=1 shell中變數自增的實現方法 Linux Shell中寫迴圈時,常常要用到變數的自增,現在總結一下整型變數自增的方法。 我所知道的,bash中,目前有五種方法: 1. i=`expr $i + 1`; 2. le

static修飾的變數函式

轉自http://www.cnblogs.com/dc10101/archive/2007/08/22/865556.html 在C語言中,static的字面意思很容易把我們匯入歧途,其實它的作用有三條。 (1)先來介紹它的第一條也是最重要的一條:隱藏。 當我們同時編譯多

axure中的變數函式

          axure的變數設定是為了完成一些邏輯上處理,例如從26個字母中隨機取出四個字母作為驗證碼: a.用隨機數定位數字,0-26中隨機找到一個數字 b.根據0-26個位置找出相應的字母 c..4個一組合就可以了。 這個是驗證碼的主頁面:     涉及到區

C/C++變數函式的命名規則

一、C語言變數名的命名規則:(可以字母,數字,下劃線混合使用) 1. 只能以字母或下劃線開始; 2. 不能以數字開始; 3. 一般小寫; 4. 關鍵字不允許用(eg:int float=2//error  float 為保留字不允許用); 二、函式名的命名規則 1.見名知意; 2.自定義函式函式名首字母大寫(

理解Linux環境變數配置檔案執行順序

每個使用者都有自己專屬的執行環境,這個環境是由一組變數所定義,這些變數稱之為環境變數。使用者可以修改環境變數以滿足自己的要求。 設定環境變數:$export NAME="HELLOWORLD"  ( 臨時變數,重啟系統將失效) 顯示環境變數:$echo $NAME env

[Linux.Shell] 變數提取

${#string} $string的長度 ${string:position} 在$string中, 從位置$position開始提取子串 ${string:position:length} 在$string中, 從位置$position開始提取長度為$length的

awk使用shell變數shell使用awk中的變數

在寫shell指令碼時,經常會使用到awk程式。但是有些複雜的邏輯,可能需要在awk中使用在shell中定義的變數,而且awk程式處理之後,產生的中間變數,還需要在shell中繼續處理。 一、那如何在awk中使用在shell中定義的變數呢? 方法一:使用"'把shell

結合linux 環境變數的理解shell指令碼 if.......then語句test命令

"uenvboot=" \ "if run sd_uEnvtxt_existence_test; then " \ "run loadbootenv; " \ "echo Loaded environment from ${bootenv}; " \

Linux shell 環境變數有效範圍

每當我們使用ssh客戶端遠端登陸一個服務時,作業系統就會給我們分配一個新的shell,並且這個shell繼承了作業系統的永久環境變數。在當前的shell執行一個sh檔案,都會臨時產生一個子shell,該檔案執行完畢後,將自動返回到父shell。 子shell會繼承父shell的所有永久環境變數和

Linux-shell-curl-put命令變數換行問題總結

1. 最近在使用shell curl自動處理ETL時,需要定時觸發一API,使用方式為PUT,但是多次觸發均失敗,命令如下:curl -g -i -H "Content-type: application/json" \-X PUT "http://101.201.81.10