如何在 unix 中创建参数。
我必须创建一个 shell 程序,它接受用户 ID 作为参数来查看另一个用户会话的状态。
我的问题是“将用户 ID 作为参数”
这是为了bash。
答案1
对于 shell,参数被称为位置参数,即您可以将它们一个接一个地插入到文件名之后,并通过它们插入的位置到达每个参数。
位置参数 0 始终是脚本的(文件)名称,并且给出的参数从 1 开始。因此您可以通过 获取第一个参数$1
,通过 获取第二个参数$2
,依此类推。
例如:
% foo () { printf '%s\n' "First: "$1" and Second: "$2"" ;}
% foo spam egg
First: spam and Second: egg
要在语句中使用它if
,仅考虑第一个参数$1
(其他参数也同样如此):
if [ "$1" = "foo" ]; then
## Dome something
else
## Do something else
fi
假设您将其放在名为 的脚本中foobar.sh
。现在您可以运行该脚本:
./foobar.sh foo
./foobar.sh bar
./foobar.sh blahblah
在三种情况下,的值分别$1
为foo
、bar
、 。blahblah
答案2
如果我从您对 heemayl 答案的评论中推断正确,您正在寻找一种获取当前用户的方法,请使用$USER
.
该$USER
变量以字符串形式返回当前用户。
#!/bin/bash
if [ "$USER" == <something else> ]; then
#do something IF the current user is equal to whatever string you compare it to
else
#do something else IF the current user is not equal to whatever string you compare it to
fi
PS:Unix SE 并不是提出家庭作业问题的合适地方。除了合法的问题之外,如果您对某个主题有疑问,最好先询问您的老师。