His*_*iss 2 shell shell-script
os_version=$(cat /etc/issue |grep Ubuntu)
if $os_version
then
echo found
else
echo notfound
fi
Run Code Online (Sandbox Code Playgroud)
当我在 Ubuntu 机器上尝试它时,它说 ./test: line 2: Ubuntu: command not found notfound
这对我有用,但我想将它分配给一个变量
if cat /etc/issue |grep Ubuntu
then
echo found
else
echo notfound
fi
Run Code Online (Sandbox Code Playgroud)
该if语句运行命令,并检查其退出状态。使用$os_version的命令扩展它,并运行所产生的命令行工作。因此,如果变量包含Ubuntu 18.04.1 LTS \n \l,它会尝试运行一个叫命令Ubuntu与参数18.04.1,LTS等等。
你可能想用
if [ -n "$os_version" ]; then
...
fi
Run Code Online (Sandbox Code Playgroud)
检查变量是否为空([ -n "$var" ]如果不为空则为真,如果变量为空则为真[ -z "$var" ])。
或者,你可以使用grep的范围内if声明本身作为你的编辑一样,并设置一个变量有:
distro=unknown
if grep -q Ubuntu < /etc/issue; then
distro=ubuntu
fi
# ... later
if [ "$distro" = ubuntu ]; then
# do something Ubuntu-specific
fi
Run Code Online (Sandbox Code Playgroud)