Last_name First_name MIDdle_Initial Group
(其余说明FYI)您的脚本应创建最多8个字符的唯一用户名,并生成
用户的随机密码.应为用户分配主目录
取决于他们所在的组.您可以假设用户将属于
管理(“mgmt”),员工(“empl”)或临时(“temp”)和他们的
各个目录在/ home中的这些组名下.例如,如果John Doe是
在“mgmt.”中,他的用户名是jdoe1234,那么他的主目录应该在
/家/管理/ jdoe1234.锁定主目录,使其他人没有
主目录的权限比用户自己的权限.
您的脚本应该生成一个名为users.txt的文件,其中包含以下列:
姓氏名字UID密码
可用于将用户名和密码分发给用户.
第一部分(不是斜体)让我感到困惑.如果我理解他的措辞正确,他希望我从单独的.txt文件中获取文本并将其用作我脚本的参数?有了这个想法
./file.sh arg1 arg2 arg3 arg4
除了那些args将成为.txt文件中的前四个单词?比方说,如果.txt文件包含“Doe John A empl”,那就像打字一样
./file.sh arg1 arg2 arg3 arg4
这是我到目前为止的尝试(我实际上尝试了其他的东西,但这就是我现在在屏幕上看到的,有点像我开始的那样):
#!/bin/bashecho "$(cat file.txt)"lname=$(echo |head -c 3)//to make username use first 3 letters of last namefname=$(echo |head -c 1)//to make username use first letter of first namemname=group=echo "$lname$fname$mname$group"
截至目前,第一行以下的任何内容都没有做任何事情.我从command line arguments from a file content获得了第一行并且我使用它因为我认为它会让我使用.txt文件中的内容作为参数,但显然没有这样做.它只是输出它的内容,而不是让我使用每个单词作为参数.不知道该怎么办.有帮助吗?我认为这不会非常困难,因为我开始编写脚本,假设用户提供了参数,但我重读了说明的第一部分,并假设他希望从单独的.txt文件中获取它们.
解决方法 $(command)返回命令的输出.如果你执行$(cat some_file),它将返回文件的文本.您可以使用它来将文件的内容作为参数来执行:cmd1 $(cat args_file)
因此,当您使用echo $(cat file.txt)时,您将获得与使用cat file.txt相同的输出,因为cat将文件的内容发送到echo,将其显示到标准输出.
$n表示传递给脚本的参数n($0是脚本的名称).在这里,您只需提供一个参数,即文件的名称.所以2美元,3美元和4美元将不包含任何东西.
因此,从文件中只能获得名称为$names = $(cat $1)的字符串.为了分别获得每个字段,您可以使用cut:
lname=$(cut -d \ -f 1 )fname=$(cut -d \ -f 2 )mname=$(cut -d \ -f 3 )group=$(cut -d \ -f 4 )
笔记:
shell中注释的符号是#NOT //.
head显示文件的第一行,head -c表示第一个字节.它不会剪切文件.
总结以上是内存溢出为你收集整理的linux – 将.txt文件中的内容作为bash脚本的参数传递?全部内容,希望文章能够帮你解决linux – 将.txt文件中的内容作为bash脚本的参数传递?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)