shell編寫指令碼累積

2022-09-23 04:03:11 字數 990 閱讀 4089

shell獲取當前工作目錄絕對路徑

unix系統 賦值檔案及資料夾

shell路徑變數出現空格時的處理方法

curret_dir=$(cd "$(dirname "$0")";pwd)
複製檔案到資料夾

例如;在/test目錄下新建test1和test2兩個子資料夾。 假設複製原始檔test1下的test01檔案,目標目錄為test2

cp /test/test1/test01  /test/test2
複製資料夾到資料夾

例如;在/test目錄下新建test1和test2兩個子資料夾。 假設複製原始檔test1資料夾,目標目錄為test2

cp -r  /test/test1 /test/test2
複製資料夾內所有檔案到資料夾

cp -r /test/test1/. /test/test2
當路徑變數包含空格時,直接使用會出錯

$ dir="/home/test/desktop/中文 空格1/english space2/混合——1_1 空 格 3"
例如,直接cd到這個有空格的路徑變數是不行的

cheng@cheng:~/desktop$ cd $dir

bash: cd: 引數太多

cd 後面的path變數用引號引起來就好了

cheng@cheng:~/desktop$ cd "$dir"

cheng@cheng:~/desktop/中文 空格1/english space2/混合——1_1 空 格 3$

這樣做的原理是加了雙引號後,shell會把引號內的內容當作乙個整體來處理,這樣路徑中的空格就不會被當作分隔符了

注意:一定要在使用的時候加,不要在變數賦值的時候加,不然是無效的

編寫Shell指令碼

獲取變數的方式 1 echo path 2 echo 3 echo path 引數的提取 引數的個數 n 第n個引數 0 當前指令碼名稱 取出所有引數 shift 引數左移 執行過程 2 編寫指令碼內容 單獨講解 3 新增執行許可權 chmod a x abc.sh 4 當前目錄執行 abc.sh ...

Shell 指令碼編寫

shell 指令碼與 windows dos 下的批處理相似,也就是用各類命令預先放入到乙個檔案中,方便一次性執行的乙個程式檔案,主要是方便管理員進行設定或者管理用的。但是它比 windows 下的批處理更強大,比用其他程式設計程式編輯的程式效率更高,它使用了 linux unix 下的命令。方法一...

shell指令碼編寫

echo echo n不換行輸出,echo e會處理特殊字元,比如有 n則會換行 printf 不自動換行輸出 print 自動換行輸出 傳遞到指令碼的引數個數 以乙個單字串顯示所有向指令碼傳遞的引數。指令碼執行的當前程序id號 後台執行的最後乙個程序的id號 與 相同,但是使用時加引號,並在引號中...