2013-01-18 156 views
1

我始終運行我的命令shell:標準輸入shell腳本

./shellName file1 file2 

所以,在外殼,可以參考我的file1爲$ 1和文件2,用$ 2。但是,如果我想使用此命令運行外殼

./shellName <file1> file2 

我試圖讀取file1作爲標準輸入和文件2作爲標準輸出。我如何在shell腳本中引用file1和file2?我仍然可以使用$ 1和$ 2嗎? 在此先感謝。

回答

2
# read from file1 
read LINE 

# write to file2 line we just readed 
echo $LINE 
+0

你的意思是,在腳本中我可以引用file1爲LINE? – user1988385

+0

否,'LINE'是您讀取的變量的名稱,因爲您已經用文件輸入替換了'stdin' - 您不必使用任何特定名稱來引用輸入文件,您只需逐行讀取它 –

+0

所以,以前我在sed命令中使用了文件名:sed -i's/somePattern/replacedPattern/g'$ 2。我如何使用LINE更改此命令? – user1988385

1

腳本中的任何read語句將從file1中讀取,並且任何echo/print語句都會將輸出寫入file2。 $1$2將是空

0

如果您在指導文件,我不認爲劇本有提供給他們的變量,而文字是由文件1讀取和使用作爲腳本和任何輸入輸出將結束在文件2