2007/03/14

[Linux] Bash 中文 Manual

這裡的 Bash Shell 教學蠻不錯的。

我摘下一小段:

24.2.2 程序會自動定義的變量

在執行 Shell Script 時,程序會自動產生一些變量:
變量名稱 說明
$? 表示上一個指令的離開狀況,一般指令正常離開會傳回 0。不正常離開則會傳回 1、2 等數值。
$$ 這一個 shell 的 process ID number
$! 最後一個在背景執行的程序的 process number
$- 這個參數包含了傳遞給 shell 旗標 (flag)。
$1 代表第一個參數,$2 則為第二個參數,依此類推。而 $0 為這個 shell script 的檔名。
$# 執行時,給這個 Shell Script 參數的個數
$* 包含所有輸入的參數,$@ 即代表 $1, $2,....直到所有參數結束。$* 將所有參數無間隔的連在一起,存成一個單一的參數。也就是說 $* 代表了 "$1 $2 $3..."。
$@ 包含所有輸入的參數,$@ 即代表 $1, $2,....直到所有參數結束。$@ 用將所有參數以空白為間隔,存在 $@ 中。也就是說 $@ 代表了 "$1" "$2" "$3"....。


附上一段 code 是這篇沒有提到的一個用法:

#!/bin/bash
ip_address="1.1.1.1"
T="ip_address"
echo ${!T}


就是 Bash 底下「變數的變數」用法。
是澤成同學教我的。
張貼留言

[Linux] Private Key 不能登入的除錯方法與可能的問題點

最簡單的除錯方法是 $ ssh HOST -v 可能的問題點有: File/Dir Permission # 目錄是 700, 檔案是 600 Server 設定 RSAAuthentication yes PubkeyAuthentication yes...