检查文件中的行是否存在

检查文件中的行是否存在

我有一个 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 的来源。

相关内容