中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

怎么在Bash腳本中引入alias方法-創(chuàng)新互聯(lián)

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

創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)成都企業(yè)網(wǎng)站定制方案、改版、費(fèi)用等問題,行業(yè)涉及垃圾桶等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。

alias的使用

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

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

執(zhí)行source ~/.bash_profile之后,這些alias定義便載入到當(dāng)前終端環(huán)境中,我們可以通過alias <cmd>進(jìn)行查看

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

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

在命令行執(zhí)行alias也能看到預(yù)期效果

$ 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的問題

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

腳本文件test.sh

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

執(zhí)行test.sh文件卻會(huì)報(bào)錯(cuò)

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

這是因?yàn)樵贐ash中,alias默認(rèn)是不能引入Bash腳本中的。Bash的官方文檔其實(shí)更建議你使用function而非alias。那么問題來了,既然我辛辛苦苦寫了這么多alias,總不能全部改成function吧,那得多費(fèi)勁?

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

解決方法

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

新的腳本文件

#!/bin/bash

shopt -s expand_aliases
source ~/.bash_profile
ll

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

$ 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

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

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

以上就是怎么在Bash腳本中引入alias方法,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁題目:怎么在Bash腳本中引入alias方法-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://m.rwnh.cn/article44/dggehe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站品牌網(wǎng)站制作、云服務(wù)器定制網(wǎng)站、虛擬主機(jī)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
望谟县| 同德县| 鄂托克旗| 广灵县| 广宗县| 长寿区| 大余县| 行唐县| 祁阳县| 莱阳市| 耒阳市| 响水县| 阿拉善右旗| 德江县| 宿迁市| 威宁| 广昌县| 内黄县| 晋江市| 工布江达县| 门头沟区| 锡林浩特市| 东乡族自治县| 图片| 石家庄市| 桐城市| 三门县| 同心县| 南乐县| 陇南市| 通州市| 沧源| 手机| 永平县| 沙湾县| 华池县| 洱源县| 渝北区| 彭山县| 博乐市| 沧州市|