[英]why invoking "ls" (and "grep") in bash scipt depends on order of execution?
無法找到並理解為什么我會根據 bash 腳本中的執行順序收到錯誤。
我得到 2 arguments:
PATH="$1"
WORD="$2"
FILES="$(ls ./testRoot/*.c)"
輸出“ls:找不到命令”。
但,
FILES="$(ls ./testRoot/*.c)"
PATH="$1"
WORD="$2"
工作得很好。
我不明白為什么會這樣,想了解,我該如何處理。
ps 'grep'命令也是如此,但我猜這是同樣的原因。
謝謝。
PATH
是一個特殊的 Linux 變量,它包含查找可執行二進制文件的所有目錄,通常是這樣的:
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
當您在腳本中覆蓋此變量時,將不再找到可執行文件。
要解決這個問題,只需使用不同於PATH
的變量名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.