使用文本并用作命令?

时间:2013-07-18 04:55:55

标签: linux bash awk grep

我想构建一个脚本来从命令中的文件中提取单词:

例如: 在我的文件中我保留了我的用户名,如何在不知道用户名作为我的命令的一部分的情况下导出用户名,我的命令是:suspend here应该是导出的单词?

从我的文件里面有“JOHN”里面的文字我怎么能告诉命令:暂停用户名是JOHN?

如何在文件中cat / grep / sed作为命令的一部分:

类似于suspend | cat文件,我试过但是suspend命令没有用户名,所以应该有不同的东西。

我的想法就像这样

#!/bin/sh
username=cat my-file;

suspend $username ,

但我没有成功,因为我的$ username不是从猫中显示的,猫是显示它,但那就是所有。

2 个答案:

答案 0 :(得分:1)

使用以下语法

  username=$(cat my-file)

您也可以使用像

这样的反引号
  username=`cat my-file`

但最好使用$( ... )表示法:它可以嵌套并且更具可读性。

请阅读Advanced Bash Scripting Guide(它会教你很多,即使它可以受到批评)

您对suspend的使用不正确,我不明白您想要用它做什么。什么会暂停用户对你意味着什么?也许你想使用pgreppkill(杀死那个用户的所有进程,我觉得这太苛刻了)......?

答案 1 :(得分:0)

令人震惊的是,读取一行的命令被命名为“read”:

$ cat file
John
$ IFS= read -r username < file
$ echo "$username"
John

“cat”是连接文件的命令。

设置IFS=并使用-r arg进行读取,以便读取处理前导空格和/或反斜杠,而不是解释它们。如果您知道您的文件永远不能包含那些文件,或者您想要读取去除前导空格和/或解释反斜杠,那么就可以去除它们。