linux,shell腳本中獲取腳本的名字,使用腳本的名字。


需求描述

  寫shell腳本的過程中,有時會需要獲取腳本的名字,比如,有的時候,腳本

  中會有usage()這種函數,可能就會用到腳本的名字。

實現方法

  shell腳本中,通過使用$0就可以獲取到腳本的名字或者說腳本本身。

操作過程

1.通過以下的腳本寫了一個腳本的使用函數usage()

#!/bin/bash

#function usage means how to use this script.
usage()
        {
                echo "Usage: $0 process_name1"
                echo "for example $0 mysqld"
        }

        #if no parameter is passed to script then show how to use.
        if [ $# -eq 0 ];
        then
                usage
                exit
        fi

備注:以上腳本的意思就是,如果腳本執行時,腳本的參數是0個,那么就調用usage函數,然后退出。

2.執行並且測試,是否會輸出腳本的名字

[oracle@standby ~]$ ./ts01.sh 
Usage: ./ts01.sh process_name1
for example ./ts01.sh mysqld

 說明:執行測試腳本,沒有給任何的參數即腳本參數的數量是0個,那么就調用了usage()函數,此時說出了腳本的名字或者說$0位置的內容,此處輸出的是

  ./ts01.sh也就是$0

或者,通過sh命令進行調用腳本

[oracle@standby ~]$ sh ts01.sh 
Usage: ts01.sh process_name1
for example ts01.sh mysqld

備注:輸出的正好是ts01.sh

或者通過絕對路徑的方式調用腳本

[oracle@standby ~]$ /home/oracle/ts01.sh 
Usage: /home/oracle/ts01.sh process_name1
for example /home/oracle/ts01.sh mysqld 

備注:輸出的絕對路徑加上腳本的名字。

 

小結

  通過以上測試可以知道,$0就是命令行中寫的是什么輸出就是什么,但是,通過sh命令調用腳本,就是腳本名字本身了,不帶./也不帶路徑。

  主要看腳本的調用方式是什么。

 

文檔創建時間:2018年3月14日10:27:54


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM