linux – 将.txt文件中的内容作为bash脚本的参数传递?
我需要“写一个脚本来将用户添加到你的系统中,其中用户的名字被赋予脚本作为参数n(在?中,教授的拼写错误)格式的文本文件
Last_Name First_Name Middle_Initial Group (其余说明FYI)您的脚本应创建最多8个字符的唯一用户名,并生成 姓氏名字UID密码 可用于将用户名和密码分发给用户. 第一部分(不是斜体)让我感到困惑.如果我理解他的措辞正确,他希望我从单独的.txt文件中获取文本并将其用作我脚本的参数?有了这个想法 ./file.sh arg1 arg2 arg3 arg4 除了那些args将成为.txt文件中的前四个单词?比方说,如果.txt文件包含“Doe John A empl”,那就像打字一样 ./file.sh arg1 arg2 arg3 arg4 这是我到目前为止的尝试(我实际上尝试了其他的东西,但这就是我现在在屏幕上看到的,有点像我开始的那样): #!/bin/bash echo "$(cat file.txt)" lname=$(echo $1|head -c 3)//to make username use first 3 letters of last name fname=$(echo $2|head -c 1)//to make username use first letter of first name mname=$3 group=$4 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 $1) fname=$(cut -d -f 2 $1) mname=$(cut -d -f 3 $1) group=$(cut -d -f 4 $1) 笔记: shell中注释的符号是#NOT //. head显示文件的第一行,head -c表示第一个字节.它不会剪切文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 同一接口上的第二个ip地址,但位于不同的子网上
- Linux 学习_在Linux下面安装tomcat
- Linux系统之软件包管理和磁盘管理实践
- linux – ssh root @ domain – 如何指定密码?
- linux – LV状态:不可用.如何使它可用?
- linux – 在一个接口上禁用rp_filter
- linux – 获取rsync以在传输后从* sender *中删除文件
- [Linux] PHP程序员玩转Linux系列-备份还原MySQL
- LINUX教学:VirtualBox虚拟机上的Ubuntu Linux Java开发环境
- linux – Shopify Ubuntu 12.04LTS法拉第问题=可以使用旧的