shell腳本path
① Shell腳本
因為-c的意思是command,所以bash -c後面應該跟一個command。
shell運行腳本的兩種方法:
1、bash xx.sh
2、bash -c "cmd string"
使用bash -c需要注意兩點:
1、bash -c "cmd string"接的是shell命令字元串,用雙引號括起來
2、bash -c "/path/to/file"接的是文件絕對路徑,用雙引號括起來,並且文件需要可執行許可權
參考鏈接:
1.1、 linux shell -c,【bash】關於shell中 bash -c 執行命令或者可執行文件
1.2、 【bash】關於shell中 bash -c 執行命令或者可執行文件
示例:/usr/libexec/PlistBuddy -c "cmd string"
參考鏈接: XCode添加自定義Run Script Phase
由於PlistBuddy並不在Mac默認的Path里,所以我們得通過絕對路徑來引用這個工具:
參考鏈接: PlistBuddy簡單使用
② shell腳本---定時復制文件至目的文件夾
業務需求:定時從path1中取文件,復制到path2中
主要解釋第7行
分3部分:
既然上述命令輸出的是一串字元串,則不可避免需要做切割。
對於一行字元串str="aaa,bbb,vvv,ccc"
直接利用${str[@]}就可以獲得分割後的列表。那麼,如何定義分隔符呢?
IFS=$','
IFS是系統自帶的一個變數,儲存著分隔符,默認好像是空格。可以自定義
上面腳本中就是定義了IFS為換行符。
腳本後半部分就是依次處理文件,判斷目標文件夾是否已有該文件,如果沒有,就復制。
項目中源文件夾的文件是每個幾分鍾會增加一個,相當於上述腳本要每隔一段時間運行一次,以確保源文件夾和目標文件夾里的內容同步。
crontab講解1
crontab講解2
③ shell腳本 PATH作用
你用sh sh01.sh運行你的腳本時,系統會fork一個子shell出來,你改變的PATH是子shell的,一旦運行完畢,子shell會退出到當前shell,PATH會被復原。
你可以用. sh01.sh運行腳本,就達到你要的目的了。
④ linux 的shell腳本加path有什麼用
首先你確定自己把shell的文件路徑加入了PATH變數裡面
然後檢查一下你的shell腳本的許可權,看是否有執行許可權即x,如果沒有可通過chmod來更改
⑤ 如何在shell腳本中設置環境變數
如何通過shell腳本設置全局的環境變數
-bash-3.00#
env
HZ=100
LC_MONETARY=en_US.ISO8859-1
SHELL=/usr/bin/bash
TERM=ansi
LC_NUMERIC=en_US.ISO8859-1
MAIL=/var/mail/pc
PATH=/usr/sbin:/usr/bin:.
LC_MESSAGES=C
LC_COLLATE=en_US.ISO8859-1
PWD=/export/home/pc
TZ=PRC
SHLVL=1
HOME=/export/home/pc
LOGNAME=pc
LC_CTYPE=en_US.ISO8859-1
LC_TIME=en_US.ISO8859-1
_=/usr/bin/env
如果只想看指定的變數設置,如路徑PATH的設置,可以用
"echo
$PATH"或
「
env
|
grep
PATH"或」
env
|
grep
-i
path"來查詢。前面的適合知道全名的,後面2種適合只知道部分欄位或者部分關鍵字母(甚至不確定字元大小寫)的。
-bash-3.00#
echo
$PATH
/usr/sbin:/usr/bin:.
-bash-3.00#
env
|
grep
PATH
PATH=/usr/sbin:/usr/bin:.
⑥ shell腳本文件路徑問題
#!/bin/bash
read-p"請輸入一個路徑"path1
if[!-d$path1];then
mkdir-p"$path"
else
echo"目錄已經存在"
fi
⑦ linux shell PATH路徑腳本不懂
這樣。linux查詢可執行的順序就是按照path中一個一個的路徑來查詢的。它會一個一個的查詢在一個目錄下找不到會往下接找。至到最後一個路徑。若是找不到它就會提示你 這個程序不存在。你也可以把一些自己寫的程序放在自己的家目錄下 ~/bin .這樣,每個用戶的習慣可能不一樣。
⑧ shell腳本: PATH=rt find PATH -type f | xargs grep -il root
PATH是用來指定shell下二進制文件目錄的變數,不要在腳本里隨意賦值
⑨ linux下編寫腳本程序時,PATH的路徑是什麼意思(那個path是大寫的)
PATH是環境變數,shell會從這個變數中包含的所有路徑中查找外部命令,例如有個名字叫做abc的可執行文件,該文件的路徑在/usr/local/bin目錄下,這樣當你在終端的shell中直接輸入abc命令的話,abc這個程序就可以被執行,而不用輸入/usr/local/bin/abc。
另外你可以在終端中鍵入echo $PATH 也可看到當前這個PATH變數中的內容