Linux Shell程式設計(30)——別名
Bash別名本質上是一個簡稱, 縮寫, 這可避免鍵入過長的命令序列. 例如,如果我們新增 alias lm="ls -l | more" 這一行到檔案~/.bashrc file裡, 然後每次在命令列鍵入lm 將會自動被替換成ls -l | more. 這使使用者在命令列不必鍵冗長的命令序列也避免了記憶複雜的命令及眾多選項. 設定alias rm="rm -i" (互動式刪除)可以使你犯下錯誤時不必過度悲傷,它能避免你不小心刪除重要檔案.
在指令碼里,別名機制不是非常的有用. 如果把別名機制想像成C前處理器的某些功能將會非常好,比如巨集擴充套件,但是,不幸的是Bash不能在別名中擴充套件引數.而且,別名不能在“混合型的結構”中使用,比如if/then語句, 迴圈, 和函式. 還有一個限制是別名不能遞迴地擴充套件.
例子:指令碼中的別名
unalias 命令刪除先前設定的別名.
在指令碼里,別名機制不是非常的有用. 如果把別名機制想像成C前處理器的某些功能將會非常好,比如巨集擴充套件,但是,不幸的是Bash不能在別名中擴充套件引數.而且,別名不能在“混合型的結構”中使用,比如if/then語句, 迴圈, 和函式. 還有一個限制是別名不能遞迴地擴充套件.
例子:指令碼中的別名
#!/bin/bash
# alias.sh
shopt -s expand_aliases
# 必須設定這個選項,否則指令碼不會擴充套件別名功能.
alias Jesse_James='echo "\"Alias Jesse James\" was a 1959 comedy starring Bob Hope."'
Jesse_James
echo; echo; echo;
alias ll="ls -l"
# 可以使用單引號(')或雙引號(")來定義一個別名.
echo "Trying aliased \"ll\":"
ll /usr/X11R6/bin/mk* #* 別名工作了.
echo
directory=/usr/X11R6/bin/
prefix=mk* # 看萬用字元會不會引起麻煩.
echo "Variables \"directory\" + \"prefix\" = $directory$prefix"
echo
alias lll="ls -l $directory$prefix"
echo "Trying aliased \"lll\":"
lll # 詳細列出在/usr/X11R6/bin目錄下所有以mk開頭的檔案.
# 別名能處理連線變數 -- 包括萬用字元 -- o.k.
TRUE=1
echo
if [ TRUE ]
then
alias rr="ls -l"
echo "Trying aliased \"rr\" within if/then statement:"
rr /usr/X11R6/bin/mk* #* 引起錯誤資訊!
# 別名不能在混合結構中使用.
echo "However, previously expanded alias still recognized:"
ll /usr/X11R6/bin/mk*
fi
echo
count=0
while [ $count -lt 3 ]
do
alias rrr="ls -l"
echo "Trying aliased \"rrr\" within \"while\" loop:"
rrr /usr/X11R6/bin/mk* #* 在這兒,別名也不會擴充套件.
let count+=1
done
echo; echo
alias xyz='cat $0' # 指令碼列印自身內容.
# 注意是單引號(強引用).
xyz
exit 0
unalias 命令刪除先前設定的別名.
相關文章
- Shell變數型別有哪些?linux運維shell程式設計變數型別Linux運維程式設計
- Linux之shell程式設計Linux程式設計
- Linux Shell程式設計(1)Linux程式設計
- Linux Shell程式設計(2)Linux程式設計
- Linux入門---(三)Shell程式設計Linux程式設計
- 前端學習 linux —— shell 程式設計前端Linux程式設計
- 【學習】Linux Shell指令碼程式設計Linux指令碼程式設計
- 如何學習shell程式設計?Linux運維學習shell程式設計是什麼程式設計Linux運維
- Linux Shell指令碼程式設計-基礎1Linux指令碼程式設計
- Linux作業系統之Shell程式設計Linux作業系統程式設計
- Linux-shell程式設計入門基礎Linux程式設計
- Linux大資料定製篇 Shell程式設計Linux大資料程式設計
- Shell程式設計程式設計
- Linux Shell程式設計(1) – Bash 的基本功能:別名、快捷鍵、歷史命令、輸出重定向、管道符、Shell中特殊符號Linux程式設計符號
- Shell程式設計 --- Shell介紹程式設計
- Linux Shell指令碼程式設計while語句案例Linux指令碼程式設計While
- Linux shell程式設計常用萬用字元有哪些?Linux程式設計字元
- Linux之19——Shell程式設計基礎詳解Linux程式設計
- Linux shell程式設計(一)shell指令碼中的變數詳解Linux程式設計指令碼變數
- Linux-別名設定Linux
- shell程式設計五程式設計
- shell程式設計二程式設計
- Shell程式設計-shell變數1程式設計變數
- Linux與Shell 第2天 實操、軟體包管理、Shell程式設計Linux程式設計
- Shell程式設計-02-Shell變數程式設計變數
- Shell程式設計-基礎程式設計
- Shell程式設計-read命令程式設計
- shell程式設計進階程式設計
- shell 程式設計簡記程式設計
- shell程式設計基礎程式設計
- Shell 程式設計入門程式設計
- 初識shell程式設計程式設計
- LINUX Shell指令碼程式設計例項詳解(一)上Linux指令碼程式設計
- Shell程式設計-11-子Shell和Shell巢狀程式設計巢狀
- Shell程式設計——極簡教程程式設計
- shell程式設計–bash變數程式設計變數
- shell程式設計—簡介(一)程式設計
- Shell 指令碼程式設計陷阱指令碼程式設計
- shell程式設計基礎二程式設計