免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

怎么在Bash腳本中引入alias方法-創新互聯

本篇文章給大家分享的是有關怎么在Bash腳本中引入alias方法,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創新互聯作為成都網站建設公司,專注成都網站建設、網站設計,有關成都企業網站定制方案、改版、費用等問題,行業涉及垃圾桶等多個領域,已為上千家企業服務,得到了客戶的尊重與認可。

alias的使用

在日常開發中,為了提高運維效率,我們會用alias(命令別名)來定義命令的簡稱。比如在~/.bash_profile中添加:

alias ll='ls -lrt --color'
alias bdebug="go build -gcflags '-N -l'"
alias py3='/usr/bin/python3'

執行source ~/.bash_profile之后,這些alias定義便載入到當前終端環境中,我們可以通過alias <cmd>進行查看

$ alias ll 
ll='ls -lrt --color'

$ alias bdebug
bdebug='go build -gcflags '\''-N -l'\'

在命令行執行alias也能看到預期效果

$ ll 
total 44
-rw-rw-r-- 1 liyang liyang  62 Sep 16 09:38 test.c
-rw-rw-r-- 1 liyang liyang  68 Sep 16 09:38 foo.h
-rw-rw-r-- 1 liyang liyang  74 Sep 16 09:38 foo.c
-rwxrwxr-x 1 liyang liyang 8592 Sep 16 09:44 libfoo.so
-rw-rw-r-- 1 liyang liyang 4347 Sep 16 09:44 o23.s
-rwxrwxr-x 1 liyang liyang 9451 Sep 16 09:45 test

在Bash腳本中引入alias的問題

但是有些時候,我們希望將~/.bash_profile中定義好的alias引入Bash腳本中,以便簡化命令。例如

腳本文件test.sh

#!/bin/bash
source ~/.bash_profile
ll

執行test.sh文件卻會報錯

$ bash test.sh 
test.sh: line 5: ll: command not found

這是因為在Bash中,alias默認是不能引入Bash腳本中的。Bash的官方文檔其實更建議你使用function而非alias。那么問題來了,既然我辛辛苦苦寫了這么多alias,總不能全部改成function吧,那得多費勁?

幸好,解決方法還是有的.

解決方法

只需要在test.sh中加入一行shopt -s expand_aliases

新的腳本文件

#!/bin/bash

shopt -s expand_aliases
source ~/.bash_profile
ll

執行一下,果然成功了,這是為什么呢?

$ bash test.sh 
total 48
-rw-rw-r-- 1 liyang liyang  62 Sep 16 09:38 test.c
-rw-rw-r-- 1 liyang liyang  68 Sep 16 09:38 foo.h
-rw-rw-r-- 1 liyang liyang  74 Sep 16 09:38 foo.c
-rwxrwxr-x 1 liyang liyang 8592 Sep 16 09:44 libfoo.so
-rw-rw-r-- 1 liyang liyang 4347 Sep 16 09:44 o23.s
-rwxrwxr-x 1 liyang liyang 9451 Sep 16 09:45 test
-rw-rw-r-- 1 liyang liyang  64 Mar 8 21:33 test.sh

關鍵在于shopt -s expand_aliases這句話,shopt是一個命令,使用它可以控制一些shell相關的開關:expand_aliases就是其中一個,當它被開啟之后,Bash腳本中的所有命令別名alias都會被展開。

expand_aliases
If set, aliases are expanded as described below under Aliases, Aliases. This option is enabled by default for interactive shells.

以上就是怎么在Bash腳本中引入alias方法,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創新互聯行業資訊頻道。

網頁題目:怎么在Bash腳本中引入alias方法-創新互聯
網站地址:http://newbst.com/article44/dggehe.html

成都網站建設公司_創新互聯,為您提供外貿建站品牌網站制作云服務器定制網站虛擬主機外貿網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站建設網站維護公司