2010-11-04 64 views
0

我試圖捕捉簡單命令的返回值:如何在unix shell命令中捕獲返回值(無錯誤代碼)?

即:

PWD

我在哪裏可以找到沒有標準輸出到文件相關的返回值?

感謝koby

+0

您需要指定使用的shell。 – 2010-11-04 13:02:11

+0

例如:awk'NR == 7'Single.log將在Single.log中返回第7行 – Koby 2010-11-04 13:20:55

+0

我在哪裏可以找到結果? – Koby 2010-11-04 13:22:21

回答

2

您可以用`pwd`

例如:

$ setenv MY_PWD `pwd` 
$ echo $MY_PWD 
/my/current/path 
+0

當輸入行:MY_PWD = $(pwd)時,它會顯示「MY_PWD =:找不到命令」。 – Koby 2010-11-04 12:58:28

+0

您必須確保在=號之前沒有空格:'MY_PWD = $(pwd)' – 2010-11-04 13:00:27

+0

我試過沒有空格的相同錯誤 – Koby 2010-11-04 13:02:34

0
echo $? 

是你在找什麼?

+0

否它返回0,我想要相關數據 – Koby 2010-11-04 12:53:34

1

你可以試試`pwd`

[email protected]:~$ echo `pwd` 
/home/ole 
[email protected]:~$ 
+0

如何打印這些...反襯? :) – 2010-11-04 12:56:32

+2

你的意思是我是如何讓Stack-O打印它們而不將它們轉換爲「codeblock」的?用反斜槓轉義它:-) – 2010-11-04 12:58:40

+0

未知用戶:$。 – Koby 2010-11-04 13:04:37

1

人們應該問的第一個問題是......你在使用什麼外殼?

$ MY_PWD=$(pwd)將工作在sh-like。

我認爲`pwd`會調用一個子shell,但是根據shell的不同,將輸出值設置爲變量的語法將取決於您的shell。

+0

我正在使用/ bin/tcsh – Koby 2010-11-04 13:56:43

+0

然後你應該可以寫下「set variablename = \'pwd \'; echo $ variablename」 – Danosaure 2010-11-06 03:22:25