2013-07-18 48 views
-1

我whant建立一個腳本來提取命令從文件中的話:使用文本並用作命令?

例如:在我的文件我把我的用戶名 ,我怎麼可以導出的用戶名,而無需知道用戶名作爲我命令的一部分,我的命令是:掛起這裏應該是輸出的字?

從我的文件裏面有「JOHN」裏面的文字,我怎麼能告訴命令:暫停用戶名是JOHN?

我怎樣才能貓/ grep的/ sed的從文件中的文本作爲命令的一部分:

像暫停|貓文件,我有嘗試,但暫停命令不走的用戶名,所以應該有有些不同。

我IDEEA哪裏像這樣

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

suspend $username , 

,但我沒有更迭,因爲我的$用戶名沒有從貓顯示,貓是顯示它但那一切在做什麼。

+0

你的文本文件是什麼樣的? –

+0

問:我想構建一個腳本來從命令中的文件中提取單詞(例如,「JOHN」)。 A:好的 - 你可以這樣做。但首先,你需要告訴我們這個文件是如何構建的?程序如何找到「JOHN」?按字符偏移(字符20)?由字位置(第二個字)?您需要告訴我們更多關於該文件的信息:) – paulsm4

+0

該文件很簡單,它的內容僅僅是一些其他程序生成的用戶名,今天可以是john,tomorow可以是joe,在文件中只有一個用戶名它,約翰或喬,文本我想以某種方式捕獲它,並將其用作我的命令的一部分,我想這就像這個username = cat file;暫停$ username,類似的東西,但我的ideea沒有工作。 – Svan

回答

1

使用以下語法

username=$(cat my-file) 

您還可以使用反引號像

username=`cat my-file` 

$( ... )符號是最好的:它可以被嵌套,是更具可讀性。

請閱讀Advanced Bash Scripting Guide(它會教你很多,即使它可以被批評)

你的suspend使用是不正確的,我不明白你想用它做什麼。什麼會暫停用戶對你意味着什麼?也許你想用pgreppkill(殺死那個用戶的所有進程,我覺得這太過於苛刻)......?

+0

這個用戶名='cat my-file'工作得很完美,非常感謝。 – Svan

+0

避免反引號。首選'$('....')'符號! –

0

讀取線,令人震驚,命名命令「讀」:

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

「貓」是連接文件的命令。

設置IFS=並使用-r arg來讀取是這樣的,使得讀取處理前導空白和/或反斜槓,而不是解釋它們。如果你知道你的文件永遠不能包含這些文件,或者你想閱讀刪除主要的空白和/或解釋反斜槓比你可以擺脫那些。