shell腳本里面相互呼叫時路徑不要用pwd獲取
shellA呼叫shellB,如果shellB 裡面需要使用路徑作為變數,去尋找其它檔案。那麼要注意,不用pwd,其返回的是系統中使用者當前所在位置的路徑,也就是shellA的路徑,這樣就錯了。應該用dirname $0,找出當前執行檔案的路勁。
場景:
指令碼 observerReport.sh 裡面呼叫 mergerReport.sh,observerReport.sh在script/目錄, mergerReport.sh在下一級子目錄script/merge裡,
此時,如果mergerReport.sh裡面用pwd生成路徑,並不會是 script/merge,而是當前指令碼的執行路徑,也就是script。
所以要用 dirname $0 返回正確路徑
相關推薦
shell腳本里面相互呼叫時路徑不要用pwd獲取
shellA呼叫shellB,如果shellB 裡面需要使用路徑作為變數,去尋找其它檔案。那麼要注意,不用pwd,其返回的是系統中使用者當前所在位置的路徑,也就是shellA的路徑,這樣就錯了。應該用dirname $0,找出當前執行檔案的路勁。 場景: 指令碼 obse
shell腳本里面通過正則匹配操作字串的問題
a=$( expr 'helloworld20140501.txt' : '.*\([0-9]\{8\}\).*' ) echo $a linux shell 中可以將命令的結果賦值給變數,$(命令)這種格式將返回命令執行後的結果字串 上面命令執行後,變數a的值是20140
學以致用二十三-----shell腳本里呼叫指令碼
當前指令碼可以呼叫其他目錄下的指令碼,並可以直接使用其他腳本里的函式。 首先檢視指令碼目錄 執行net_set.sh,同時執行colos.sh 並可直接使用 color.sh中的函式 net_set.sh 注意紅色方框和綠色方框部分 Echo_green為 color.sh的函式 程式碼
shell腳本里常見的指令和函式
[[email protected] ~]$ ./test.shenter y/n :donly accept Y,y,N,n,YES,yes,NO,no enter y/n :y =========
關於shell腳本里的單行註釋和多行註釋方法
以“#”開頭的行就是註釋,會被直譯器忽略。 sh裡沒有多行註釋,只能每一行加一個#號。只能像這樣: #-------------------------------------------- # 這是一個自動打ipa的指令碼,基於webfrogs的ipa-build書寫:
Shell腳本里常見的一些指令和函式
shell script可以執行cd指令改變當前目錄[[email protected] test]# vi test.sh cd /home touch go echo haha > go ls go cd /home/mac echo haha >
shell腳本里的\r字元。
在windows上用notepadd++編輯一個shell指令碼,死活出錯,回到linux下,編輯,還是有這個\r,搜尋了下,是這樣的: ‘ 由於在shell處理了windows裡的字元檔案,導致本該輸出成兩行的字串變成了一行,而第一行行首的一些字元被第二行覆
如何在shell腳本里傳遞一個變數給awk
awk有時是個糾結的東西,一方面它很容易就佔用了單引號和雙引號,如果你要在什麼腳本里面呼叫awk,很輕鬆地就要跟引號的轉義進行搏鬥; 另一方面,$1 $2 ... $NF $NR,它也毫不客氣的佔用了$族的地盤。 怎麼在shell腳本里面傳遞一個變數給awk呢? 特別是想
linux 把cd 命令寫在bash shell腳本里不起作用
寫shell指令碼時,發現把cd命令寫在裡面無法正確跳轉,還是在當前目錄下,其實檔案已經跳轉,不過subshell退出的時候又回到當前目錄了,解決方法: source yourshellname 其中,yourshellname就是你的shell指令碼的檔名
shell腳本案例(一)批量創建用戶
shell 批量創建用戶 for linux 案例需求用shell腳本批量建立Linux用戶實現要求:創建用戶student1到student50,指定組為student組!而且每個用戶需要設定一個不同的密碼! 實現腳本 #!/bin/bash grep ‘student‘ /etc/grou
perl 腳本里呼叫shell 以及獲取返回值
perl 腳本里呼叫shell 以及獲取返回值,如下: #!/usr/bin/perl $output = qx(/home/irdetogame/lucy/CMGC/processAPK.sh
最近感想+用shell腳本新建文件時添加創建的註釋
網易雲 string 上班 amp 吸引 都是 2017年 現象 保持 離職了將近20天了,帶著女朋友回家見了下家長,過了個國慶節,5號返深。當時離職的原因是,對工作現狀不滿(工資待遇低,倒掛),對工作內容積極性不高(興趣不深、沒有成就感),導致這種現象的原因,我分析了下歸
shell 腳本中 空格的註意問題:= 賦值兩邊不能有空格,而if比較判斷時 = 兩邊必須加空格
花括號 判斷 建議 閱讀 i+1 字符 變量 中間 必須 shell腳本對空格有嚴格的規定,賦值語句等號兩邊不能有空格,而字符串比較,等號兩邊必須有空格 賦值時: i=1 i=$((i+1)) // =用作賦值時,兩邊絕對不
unity呼叫別的腳本里面的方法
第一種,被呼叫指令碼函式為static型別,呼叫時直接用 指令碼名.函式名()。很不實用,只能呼叫static的方法,而且static一直存在記憶體中 第二種,GameObject.Find("指令碼所在物體名").SendMessage("函式名"); 此種方法可以呼
python調用shell腳本時需要切換目錄
沒有 單獨 執行 pytho 後來 shel 但是 輸出 執行命令 最近遇到了一個問題,就是python代碼調用shell腳本時,發現輸入輸出的文件,總是和自己預想的有偏差,但是單獨在linux下執行命令的時候,卻沒有錯誤。後來發現是相對路徑的問題,因為執行pytho
完全備份數據和差異備份數據的shell腳本
完全備份數據和差異備份數據的shell腳本#!/bin/bash # # Description: 該腳本功能,以周為單位循環;周五實行完全備份,周六不備份,周日至周四實行差異備份; # 因工作需要,不實行壓縮打包的方式,采用cp完全備份,rsync差異備份; #
我的shell腳本編程
編程 shell 語言 對於shell腳本編程特點來說它是 過程式編程語言、腳本類型語言、解釋型語言。 在寫腳本的時候總是會遵循三種執行結構:順序執行結構、選擇執行結構、循環執行結構。 順序執行即:以從左到右,從上到下順序執行所有的語句(命令) 選擇執行結構:依照給定
Linux Shell——bash shell 腳本簡介
運行環境 linux 關鍵字 程序 單詞 bash shell 腳本簡介shell 運行環境如果你運行的是 Unix 或 Linux 系統,例如 Ubuntu,Red Hat,SUSE Linux,還有macOS,都是內置了 bash shell 的,所以你不需要額外配置所謂的開發
shell腳本
file 連接 sync centos tran 反引號 調用 base user 編寫腳本 1.xcall.sh 為了在任何目錄下都可以執行,可以配環境變量或環境變量指定的目錄,如:/usr/local/bin/ 因為訪問其他主機時,只能調用 在 /usr/bin 或
什麽是shell腳本編程?
shell腳本編程什麽是Shell腳本示例:#!/bin/shcd~mkdirshell_tutcdshell_tutfor((i=0;i<10;i++));dotouchtest_$i.txtdone示例解釋第1行:指定腳本解釋器,這裏是用/bin/sh做解釋器的第2行:切換到當前用戶的home目錄第