Omtechguy Asked: 2021-06-07 07:28:10 +0800 CST2021-06-07 07:28:10 +0800 CST 2021-06-07 07:28:10 +0800 CST 在 bash 文件中添加与 sysctl 值相关的条件 772 我只想在 sysctl vm.max_map_count 值小于 262144 时执行某些操作。例如: if [ vm.max_map_count -lt 262144] then sysctl -w vm.max_map_count = 262144 fi 问题是,如何在 bash 中读取 vm.max_map_count 的值。 任何想法如何做到这一点? linux bash 2 个回答 Voted Best Answer Kamil Maciorowski 2021-06-08T10:17:13+08:002021-06-08T10:17:13+08:00 以下命令: sysctl -n vm.max_map_count 打印值而不打印键名。要将值用作另一个命令的参数,您需要命令替换: if [ "$(sysctl -n vm.max_map_count)" -lt 262144 ] then … 注意前面有一个空格]。记住[是一个常规命令(比如lsor echo),而不是shell 语法的一部分;并且]只是最后一个论点。该[命令要求其最后一个参数是]。我之所以提到这一点,是因为在您的原始代码中,最后一个参数是262144],它在语法上是错误的。 sysctl -w vm.max_map_count = 262144也不行。正确的语法是sysctl -w vm.max_map_count=262144. DavidPostill 2021-06-07T08:06:22+08:002021-06-07T08:06:22+08:00 我只想在sysctl vm.max_map_count值小于时才执行某些操作262144。 尝试以下操作: if [ "$max_map_count" -lt 262144 ]; then sysctl -w vm.max_map_count = 262144; fi 来源:if 手册页 - Linux - SS64.com 或者: [[ $max_map_count -lt 262144 ]] && sysctl -w vm.max_map_count = 262144 来源:测试手册页 - Linux - SS64.com
以下命令:
打印值而不打印键名。要将值用作另一个命令的参数,您需要命令替换:
注意前面有一个空格
]
。记住[
是一个常规命令(比如ls
orecho
),而不是shell 语法的一部分;并且]
只是最后一个论点。该[
命令要求其最后一个参数是]
。我之所以提到这一点,是因为在您的原始代码中,最后一个参数是262144]
,它在语法上是错误的。sysctl -w vm.max_map_count = 262144
也不行。正确的语法是sysctl -w vm.max_map_count=262144
.我只想在
sysctl vm.max_map_count
值小于时才执行某些操作262144
。尝试以下操作:
来源:if 手册页 - Linux - SS64.com
或者:
来源:测试手册页 - Linux - SS64.com