关于bash:Linux Scripts和If elif else语句

Linux Scripts and If elif else statements

本问题已经有最佳答案,请猛点这里访问。

我对Linux很陌生。确切地说是六个星期。不管怎样,我正在做一项我似乎不想去的工作。我要创建一个脚本,当输入:

1
sh filename.sh"username"

在命令行,它返回或显示来自目录/etc/passwd/etc/group的信息。我做了无数的江户话,都无济于事。我现在就在这里。如果有人能在这里提供某种程度的指导,我们将不胜感激。我只是不知道我在这里哪里出了问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
#! /bin/bash

VAR1="$(grep bob /etc/passwd && grep bob /etc/group)"
VAR2="$(grep henry /etc/passwd && grep henry /etc/group)"

if [$VAR1]; then
  echo"$VAR1"
elif [$VAR2]; then
  echo"$VAR2"
else
  echo"The user entered is invalid"
fi
exit 0


试试这个:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

VAR1="$(grep bob /etc/passwd && grep bob /etc/group)"
VAR2="$(grep henry /etc/passwd && grep henry /etc/group)"

if ["$VAR1" ]; then
  echo"$VAR1"
elif ["$VAR2" ]; then
  echo"$VAR2"
else
  echo"The user entered is invalid"
fi

变化:

  • 条件内部的间距(括号和参数之间必须有空格)
  • 引用内部条件(防止分词)
  • 端部不需要exit 0
  • 第一行:通常在!之后不使用空格(尽管不是bug)