我使用Linux 2.6.x.x.x
使用「回聲」通過管道傳遞一個值
SUSE Linux Enterprise Server 10 (i586)
我想知道的是如何通過管道將命令傳遞值的問題?
在所有其他操作系統,包括DOS
,我可以使用:
echo <value> | <command>
但在Linux
,這似乎並沒有工作。
例如,我想一個Database Name
傳遞到Oracle
命令,設置Environment Variables
基於它從oratab
文件中讀取Database
。
通常情況下,該命令會爲運行:
. oraenv (to source environment variable settings)
然後,它會提示你輸入數據庫名稱。
但是,如果我運行:echo <some_db_name> | . oraenv
,它的工作原理,而不會提示,並在每個平臺上的腳本很有除了這個版本的Linux。
任何想法?
$ <> /home/oracle>echo $SHELL
/bin/bash
「這似乎不工作」 是不是一個很好的問題描述。出了什麼問題? –
你的'oraenv'運行在一個子shell中。子shell中的環境無法傳遞到主進程。 –
請參閱http://stackoverflow.com/a/12145810/841108這是一個非常類似問題的答案 –