1. 程式人生 > >linux shell內建變數和常見比較

linux shell內建變數和常見比較

特殊的shell變數

變數

含義
$0 指令碼名
$1 -$9 位置引數1-9
${10} 位置引數10
$# 位置引數的個數
"$*" 所有位置引數(作為單個字串)
"[email protected]" 所有位置引數(每個作為單獨字串)
${#*} 傳遞到指令碼中的命令列引數的個數
$? 返回值
$$ 指令碼程序的PID
$- 傳遞到指令碼中的標識
$_ 之前命令的最後一個引數
$! 執行在後臺的最後一個作業的程序ID(PID)

算術比較

操作符 含義
-eq 等於
-ne 不等於
-lt  (<) 小於
-le  (<=) 小於等於
-gt  (>) 大於
-ge  (>=) 大於等於

字串比較

操作符 含義
= 等於
== 等於
!= 不等於
< 小於(ASCII)
> 大於(ASCII)
-z 字串為空(null)
-n 字串不為空(不為null)

    注:== 在 [] 與 [[]] 中是不同的;!= 在 [[]] 使用;<、> 在 [] 中使用需要轉義(\),在 [[]] 中使用不需要; 

檔案型別操作

操作符 含義
-e file 檔案是否存在, 存在為真,不存在為假
-f file 標準檔案(普通檔案)
-d file 目錄檔案
-h file hard link(連結檔案)
-L file link(連結檔案)
-b file 塊裝置檔案
-c file 字元裝置檔案
-p file 管道檔案
-S file socket套接字檔案
-t file 檔案與終端相關聯
-N file 檔案最後一次讀取後被修改過
-s file 檔案大小不為0,檔案存在且非空
-r file 檔案具有讀許可權
-w file 檔案具有寫許可權
-x file 檔案具有執行許可權
file1 -nt file2 file1比檔案file2新
file1 -ot file2 file1比file2舊
file1 -ef file2 fiel1和fiel2是同一個檔案的硬連結

相關推薦

linux shell變數常見比較

特殊的shell變數 變數 含義 $0 指令碼名 $1 -$9 位置引數1-9 ${10} 位置引數10 $# 位置引數的個數 "$*" 所有位置引數(作為單個字串) "[email pr

Linux Shell 命令 : builtin 命令詳解

builtin命令用於執行指定的shell內部命令,並返回內部命令的返回值。builtin命令在使用時,將不能夠再使用Linux中的外部命令。當系統中定義了與shell內部命令相同的函式時,使用builtin顯式地執行shell內部命令,從而忽略定義的shell函式。 語法

常用的shell變數

$$  -- Shell本身的PID $!  -- Shell最後執行的後臺Process的PID $?  -- 最後執行的命令的結束程式碼(返回值) $-  -- 使用Set命令設定的Flag一覽 $*  -- 所有引數列表。如"$*"用「"」括起來的情況、以"$1 $2

Linux 命令系統命令

1.什麼是build in命令: shell內建命令是指bash(或其它版本)工具集中的命令。一般都會有一個與之同名的系統命令,比如bash中的echo命令與/bin/echo是兩個不同的命令,儘管他們行為大體相仿。當在bash中鍵入一個命令時系統會先看他是否是一個內建命令,如果不是才會檢視是否是系統

從Python中os模組中實用的檔案目錄操作方法到Python變數

Python常用檔案和目錄操作函式   序號 方法及描述 1 os.access(path, mode) 檢驗許可權模式 2 os.chdir(path) 改變當前工作目

常見 Bash 變數介紹

目錄 $0 執行 Bash 指令碼時,Bash 會自動將指令碼的名稱儲存在內建變數 $0 中。因為 $0 基於的是實際的指令碼檔名稱,而不是在指令碼中進行硬編碼,所以在重新命名指令碼檔案的名稱後,不需要修改指令碼的內容。比如下面的指令碼片段: #!/bin/bash ARGS=3 # 這個指令碼需要 3

linux shell “永久環境變數”、“臨時環境變數"普通變數"之完全解讀

        這個年代, 大家寫點書, 也無非就是為了搞點錢, 基本都是羅列一些知識點, 基本都是寫給已經會了的人看的。 真正用心寫書的人, 不多。 如果真正用心寫書, 且站在讀者的角度去寫, 那就少之又少了。         關於linux shell環境變數, 我看

cmake學習(五) 系統預設變數變數

1、在不同的平臺編譯的時候,會用到一些系統內建的變數,比如作業系統名稱,版本號之類: CMAKE_SYSTEM:系統全名,如 "Linux-2.4.22","FreeBSD-5.4-RELEASE" 或 "Windows 5.1" CMAKE_SYSTEM_NAME:系統名

shell的特殊重要變數

《1》位置變數 $0 獲取當前執行的shell指令碼的檔名,如果執行指令碼帶路徑,那麼就包括指令碼路徑。 $n 獲取當前執行shell的命令列的第n個引數,當n=0時表示指令碼的檔

Javascript變數topparent

引用方法top: 該變數永遠指分割視窗最高層次的瀏覽器視窗。如果計劃從分割視窗的最高層次開始執行命令,就可以用top變數。 parent: 該變數指的是包含當前分割視窗的父視窗。如果在一個視窗內有分割視窗,而在其中一個分割視窗中又包含著分割視窗,則第2層的分割視窗可以用pa

Shell命令與運行方法

col shell 執行 log family i++ 整數 執行文件 讀取 1. !# /bin/bash 這句話是shell腳本的第一行,/bin/bash表示腳本的解釋器位置。 2. 腳本的運行:     (1)bash

shellLinux shell 直接賦值間接賦值

shell linux 變量 運維 什麽是直接賦值? 1.作者直接賦予參數值的方式稱為直接賦值。 2.一般來說,由交互的方式賦值為間接賦值。 例1: varl=arppinging.com 這種就是直接賦值,由編程作者直接賦予固定的值。 例2: [root@arppinging ~]# re

Linux 批量創user批量刪除用戶

user TP HA user del echo 創建 ash OS std Linux 批量創建user和批量刪除用戶 以下為批量創建用戶: #首先我們需要創建一個xxx.txt文件,把需要的我們創建的用戶寫在這個文本裏面來,註意:每寫完一個用戶都需要換行。 vim

Linux下載命令之rpmyum比較

下載安裝 root 刪除 錯誤 rec resign sharp one ldp RPM和YUM比較 rpm 是linux的一種軟件包名稱,以.rmp結尾,安裝的時候語法為:rpm -ivh,rpm包的安裝有一個很大的缺點就是文件的關聯性太大,有時候裝一個軟件要安裝很多其他

awk 幾個特殊的變數

1、特殊變數: NR:讀取到所有記錄(包括多個檔案)的行數索引號(大概是Number Of Record的意思);FNR:只的是awk所讀取到的每個檔案中的行數索引號,當檔案發生切換時候,FNR重新從1開始,大概是File Number Of Record的意思;NF:當前行中的欄位個數(列

nginx常用的變數以及重定向

一、nginx內建常用變數: $arg_PARAMETER #這個變數包含GET請求中,如果有變數PARAMETER時的值;$args #這個變數等於請求行中(GET請求)的引數,例如foo=123&bar=blahblah; $query_string #與$args相同

Linux Shell Echo多變數輸出時怪異疊寫現象(某些字串變數中含有\r或\n)

今天利用Linux Shell命令從檔案中擷取一部分文字行資訊 `Cat file | grep someKeyword` 到Shell變數中,然後又用shell字串變數擷取的方法,提取文字行內更準確的字元資訊;利用同樣的操作方法,得到多個字串變數資訊,最後再用echo組合多變數輸出所需要的格式資訊

判斷qq瀏覽器微信瀏覽器

var ua = navigator.userAgent.toLowerCase(), isWx = false,isQQ = false, isQQInstalled = false; if(ua.indexOf(' qq')>-1 &

Nginx 之 十一 變數

  nginx的配置檔案中可以使用的內建變數以美元符$開始,也有人叫全域性變數。其中,部分預定義的變數的值是可以改變的。 變數 說明 $arg_PARAMETER 這個變數值為:GET請求中變

Linux Shell基礎 管道符grep命令

概述 管道符:管道符使用"丨"代表。如"命令1丨命令2"。表示命令 1 的正確輸出作為命令 2 的操作物件。命令 1 必須有正確輸出,而命令 2 必須可以處理命令 1 的輸出結果。 grep命令:在檔案中提取和匹配符合條件的字串行。 管道符 1. 在使用"||"命令査看/etc/ 目錄時顯示的內容非常