檢查文件中的行是否存在

檢查文件中的行是否存在

我有一個 bash 腳本,它詢問用戶 CPU 核心的數量並將其保存到名為 的變數中$cores。現在我想將此變數加入到.bashrc,所以我詢問使用者他有多少個 CPU 核心,然後詢問他是否想將此值儲存到.bashrc

現在的問題是:如何檢查是否$cores已存在,.bashrc以便腳本不會再次詢問使用者?

答案1

與其提示使用者係統有多少核心,為什麼不直接詢問系統呢?這更好,因為它不涉及寫入用戶擁有的文件。看到類似的東西,它使用“getconf”來請求 NPROCESSORS_CONF 變數。或對於其他系統,提出的想法這裡可能會有所幫助 - 使用sysctl或 grep 來/proc/cpuinfo查找核心數量。

答案2

嘗試這個:

'awk /\$core/ { print }'

答案3

您可以使用以下命令檢查 bash 中是否設定了變數:

if [[ -z "$cores" ]]
then
    echo "not set"
else
    echo "set"
fi

這將檢查$cores變數是否已設定。也就是說,如果 $cores 為空,它將顯示“未設定”,否則顯示“設定”。事實上,.bashrc非互動式 shell 不會自動取得原始碼,例如執行 shell 腳本時啟動的 shell。因此,您可以將其放在檔案. .bashrc的開頭附近.bash_login,以確保該檔案.bashrc是登入和非登入互動式 shell 的來源。

相關內容