我試著理解上面的命令。
sudo /bin/ls %s %file_path
是
%
做什麼的?這是某種替代機制嗎?有什麼
sudo /bin/ls
作用?
答案1
bash 腳本中的 % 代表錨定,但它有時會因程式而異某些參數的一部分或者其他。為了LS它什麼都不做。對於 sudo 它會做一些事情,但不是在這種情況下;這對我來說沒有任何意義...這個命令只是嘗試(作為root;根據記錄,你幾乎不需要運行LS作為 root,很少有地方無法讓普通用戶透過以下方式存取檔案名LS)在目錄 %s 和 %foo 中搜尋文件,並且應該給出「ls 無法存取 %s:沒有這樣的文件或目錄」的結果,並且 %foo 的結果也大致相同。 (除非您建立了目錄 %s,否則永遠不可能有該目錄)
對於腳本編寫,它執行以下操作。
從http://wiki.bash-hackers.org/syntax/pe:
錨定此外,您還可以「錨定」表達式:#(井號)將指示您的表達式與字串的開頭部分匹配,%(百分號)將針對結尾部分進行匹配。
MYSTRING=xxxxxxxxxx
echo ${MYSTRING/#x/y} # RESULT: yxxxxxxxxx
echo ${MYSTRING/%x/y} # RESULT: xxxxxxxxxy
(程式碼所做的是將第一個或最後一個“x”換成“y”)