Linux Shell程式設計(24)——命令替換
命令替換 將會重新分配一個命令[1]甚至是多個命令的輸出; 它會將命令的輸出如實地新增到另一個上下文中. [2]
使用命令替換的典型形式是使用後置引用(`...`). 後置引用形式的命令(就是被反引號括起來)將會產生命令列文字.
1 script_name=`basename $0`
2 echo "The name of this script is $script_name."
這樣的話, 命令的輸出可以被當成傳遞到另一個命令的引數, 或者儲存到變數中, 甚至可以用來產生for迴圈的引數列表.
例子:找anagram
使用命令替換的典型形式是使用後置引用(`...`). 後置引用形式的命令(就是被反引號括起來)將會產生命令列文字.
1 script_name=`basename $0`
2 echo "The name of this script is $script_name."
這樣的話, 命令的輸出可以被當成傳遞到另一個命令的引數, 或者儲存到變數中, 甚至可以用來產生for迴圈的引數列表.
rm `cat filename` # "filename" 包含了需要被刪除的檔案列表.
textfile_listing=`ls *.txt`
# 變數中包含了當前工作目錄下所有的*.txt檔案.
echo $textfile_listing
textfile_listing2=$(ls *.txt) # 這是命令替換的另一種形式.
echo $textfile_listing2
# 同樣的結果.
# 將檔案列表放入到一個字串中的一個可能的問題就是
# 可能會混進一個新行.
#
# 一個安全的將檔案列表傳遞到引數中的方法就是使用陣列.
# shopt -s nullglob # 如果不匹配, 那就不進行檔名擴充套件.
# textfile_listing=( *.txt )
例子:找anagram
#!/bin/bash
# 關於命令替換巢狀的例子.
E_NOARGS=66
E_BADARG=67
MINLEN=7
if [ -z "$1" ]
then
echo "Usage $0 LETTERSET"
exit $E_NOARGS # 指令碼需要一個命令列引數.
elif [ ${#1} -lt $MINLEN ]
then
echo "Argument must have at least $MINLEN letters."
exit $E_BADARG
fi
FILTER='.......' # 必須至少有7個字元.
# 1234567
Anagrams=( $(echo $(anagram $1 | grep $FILTER) ) )
# | | 巢狀的命令替換 | |
# ( 陣列分配 )
echo
echo "${#Anagrams[*]} 7+ letter anagrams found"
echo
echo ${Anagrams[0]} # 第一個anagram.
echo ${Anagrams[1]} # 第二個anagram.
# 等等.
# echo "${Anagrams[*]}" # 在一行上列出所有的anagram . . .
exit $?
相關文章
- Linux Shell程式設計(28)——程式替換Linux程式設計
- Linux Shell程式設計(6)——變數替換Linux程式設計變數
- shell替換程式碼
- shell替換程式裡的程式碼
- Linux Shell程式設計(20)——基本命令Linux程式設計
- Linux Shell程式設計(21)——複雜命令Linux程式設計
- Linux 命令排列和命令替換Linux
- Linux Shell程式設計(22)——時間/日期 命令Linux程式設計
- Linux Shell程式設計(23)——文字處理命令Linux程式設計
- SHELL程式設計實現批量Netatalk字符集檔名替換程式設計
- Linux系統程式設計之程式替換:exec 函式族Linux程式設計函式
- Linux Shell程式設計(1)——shell程式設計簡介Linux程式設計
- Shell程式設計-read命令程式設計
- linux 下一個替換命令Linux
- linux shell 程式設計Linux程式設計
- linux shell程式設計Linux程式設計
- Linux Shell程式設計(27)——子shellLinux程式設計
- Shell 中的命令替換及引數擴充套件套件
- 程式設計師幽默:一個搞笑的Linux Shell命令程式設計師Linux
- Linux系統程式設計(14)——shell常用命令Linux程式設計
- Linux 程式設計之Shell程式設計(轉)Linux程式設計
- Linux系統程式設計之程式控制(程式建立、終止、等待及替換)Linux程式設計
- vi替換命令
- Linux之shell程式設計Linux程式設計
- Linux Shell程式設計(1)Linux程式設計
- Linux Shell程式設計(2)Linux程式設計
- Linux Shell程式設計(2)——第一個shell程式Linux程式設計
- 《Linux命令列與shell指令碼程式設計大全》第五章理解shellLinux命令列指令碼程式設計
- 《Linux命令列與shell指令碼程式設計大全 第3版》Linux命令列---46Linux命令列指令碼程式設計
- Linux Shell程式設計(4)——shell特殊字元(上)Linux程式設計字元
- Linux Shell程式設計(5)——shell特殊字元(下)Linux程式設計字元
- linux下的SHELL程式設計Linux程式設計
- Linux命令列與shell指令碼程式設計入門經驗Linux命令列指令碼程式設計
- Linux Shell命令換行問題(轉)Linux
- Linux Shell 字串操作(長度,查詢,替換)詳解Linux字串
- Linux Shell 字串操作(長度/查詢/替換)詳解Linux字串
- Linux Shell程式設計(3)——執行shell指令碼Linux程式設計指令碼
- 前端學習 linux —— shell 程式設計前端Linux程式設計