我想构建一个脚本来从命令中的文件中提取单词:
例如: 在我的文件中我保留了我的用户名,如何在不知道用户名作为我的命令的一部分的情况下导出用户名,我的命令是:suspend here应该是导出的单词?
从我的文件里面有“JOHN”里面的文字我怎么能告诉命令:暂停用户名是JOHN?
如何在文件中cat / grep / sed作为命令的一部分:
类似于suspend | cat文件,我试过但是suspend命令没有用户名,所以应该有不同的东西。
我的想法就像这样
#!/bin/sh
username=cat my-file;
suspend $username ,
但我没有成功,因为我的$ username不是从猫中显示的,猫是显示它,但那就是所有。
答案 0 :(得分:1)
使用以下语法
username=$(cat my-file)
您也可以使用像
这样的反引号 username=`cat my-file`
但最好使用$(
... )
表示法:它可以嵌套并且更具可读性。
请阅读Advanced Bash Scripting Guide(它会教你很多,即使它可以受到批评)
您对suspend
的使用不正确,我不明白您想要用它做什么。什么会暂停用户对你意味着什么?也许你想使用pgrep或pkill
(杀死那个用户的所有进程,我觉得这太苛刻了)......?
答案 1 :(得分:0)
令人震惊的是,读取一行的命令被命名为“read”:
$ cat file
John
$ IFS= read -r username < file
$ echo "$username"
John
“cat”是连接文件的命令。
设置IFS=
并使用-r
arg进行读取,以便读取处理前导空格和/或反斜杠,而不是解释它们。如果您知道您的文件永远不能包含那些文件,或者您想要读取去除前导空格和/或解释反斜杠,那么就可以去除它们。