linux shell中的 a到 z的意思

2021-09-12 18:20:38 字數 2758 閱讀 5448

1),

[ -a file ] 如果 file 存在則為真。

[ -b file ] 如果 file 存在且是乙個塊特殊檔案則為真。

[ -c file ] 如果 file 存在且是乙個字特殊檔案則為真。

[ -d file ] 如果 file 存在且是乙個目錄則為真。

[ -e file ] 如果 file 存在則為真。

[ -f file ] 如果 file 存在且是乙個普通檔案則為真。

[ -g file ] 如果 file 存在且已經設定了sgid則為真。

[ -h file ] 如果 file 存在且是乙個符號連線則為真。

[ -k file ] 如果 file 存在且已經設定了粘制位則為真。

[ -p file ] 如果 file 存在且是乙個名字管道(f如果o)則為真。

[ -r file ] 如果 file 存在且是可讀的則為真。

[ -s file ] 如果 file 存在且大小不為o則為真。

[ -t fd ] 如果檔案描述符 fd 開啟且指向乙個終端則為真。

[ -u file ] 如果 file 存在且設定了suid (set user id)則為真。

[ -w file ] 如果 file 如果 file 存在且是可寫的則為真。

[ -x file ] 如果 file 存在且是可執行的則為真。

[ -o file ] 如果 file 存在且屬有效使用者id則為真。

[ -g file ] 如果 file 存在且屬有效使用者組則為真。

[ -l file ] 如果 file 存在且是乙個符號連線則為真。

[ -n file ] 如果 file 存在 and has been mod如果ied since it was last read則為真。

[ -s file ] 如果 file 存在且是乙個套接字則為真。

[ file1 -nt file2 ] 如果 file1 has been changed more recently than file2, or 如果 file1 exists and file2 does not則為真。

[ file1 -ot file2 ] 如果 file1 比 file2 要老, 或者 file2 存在且 file1 不存在則為真。

[ file1 -ef file2 ] 如果 file1 和 file2 指向相同的裝置和節點號則為真。

[ -o optionname ] 如果 shell選項 「optionname」 開啟則為真。

[ -z string ] 「string」 的長度為零則為真。

[ -n string ] or [ string ] 「string」 的長度為非零 non-zero則為真。

[ string1 == string2 ] 如果2個字串相同。 「=」 may be used instead of 「==」 for strict posix compliance則為真。

[ string1 != string2 ] 如果字串不相等則為真。

[ string1 < string2 ] 如果 「string1」 sorts before 「string2」 lexicographically in the current locale則為真。

[ string1 > string2 ] 如果 「string1」 sorts after 「string2」 lexicographically in the current locale則為真。

[ -z 「echo 111s|sed 's/[0-9]//g'」 ] && echo 1 || echo 0 #把字串中的數字都替換掉

2),linux命令列下操作:

$cfgfile="lib:basic_sim.tcl"

$b=$

$echo $b

basic_sim.tcl

3),linux命令列下操作:

$cfgfile=basic_sim.tcl

$b=$

$echo $b

b$b=$

$echo $b

bas4),

介紹下shell中的${}、##和%%使用範例:

假設定義了乙個變數為:

file=/dir1/dir2/dir3/my.file.txt

可以用$分別替換得到不同的值:

$:刪掉第乙個 / 及其左邊的字串:dir1/dir2/dir3/my.file.txt

$:刪掉最後乙個 / 及其左邊的字串:my.file.txt

$:刪掉第乙個 . 及其左邊的字串:file.txt

$:刪掉最後乙個 . 及其左邊的字串:txt

$:刪掉最後乙個 / 及其右邊的字串:/dir1/dir2/dir3

$:刪掉第乙個 / 及其右邊的字串:(空值)

$:刪掉最後乙個 . 及其右邊的字串:/dir1/dir2/dir3/my.file

$:刪掉第乙個 . 及其右邊的字串:/dir1/dir2/dir3/my

記憶的方法為:

# 是 去掉左邊(鍵盤上#在 $ 的左邊)

%是去掉右邊(鍵盤上% 在$ 的右邊)

單一符號是最小匹配;兩個符號是最大匹配

$:提取最左邊的 5 個位元組:/dir1

$:提取第 5 個位元組右邊的連續5個位元組:/dir2

也可以對變數值裡的字串作替換:

$:將第乙個dir 替換為path:/path1/dir2/dir3/my.file.txt

$:將全部dir 替換為 path:/path1/path2/path3/my.file.txt

Shell中 a到 z的意思

a file 如果 file 存在則為真。b file 如果 file 存在且是乙個塊特殊檔案則為真。c file 如果 file 存在且是乙個字特殊檔案則為真。d file 如果 file 存在且是乙個目錄則為真。e file 如果 file 存在則為真。f file 如果 file 存在且是乙個...

linux中的 a到 z的意思

a file 如果 file 存在則為真。b file 如果 file 存在且是乙個塊特殊檔案則為真。c file 如果 file 存在且是乙個字特殊檔案則為真。d file 如果 file 存在且是乙個目錄則為真。e file 如果 file 存在則為真。f file 如果 file 存在且是乙個...

shell 中if語句 a 到 z 的意思

a file 如果 file 存在則為真。b file 如果 file 存在且是乙個塊特殊檔案則為真。c file 如果 file 存在且是乙個字特殊檔案則為真。d file 如果 file 存在且是乙個目錄則為真。e file 如果 file 存在則為真。f file 如果 file 存在且是乙個...