2014-05-19 145 views
0

我想列出shell腳本中目錄中文件的數量。 這個命令效果很好:ls與nohup無法正常工作

let number_of_files=`ls $direc -l| wc -l` 

我的問題是,當我使用此命令的nohup,它不能很好地工作。

file_name=` ls -1 $direc | head -$file_number | tail -1` 

你知道任何其他選項來做到這一點:試圖獲得一個文件時

同樣的情況?

我知道,在C有一個函數:

num_of_files=scandir(directory,&namelist,NULL,NULL); 

我還包括完整的命令行:

nohup sh script_name.sh > log.txt & 

你知道在shell腳本行之有效任何其他方式用nohup?

謝謝。

+3

你用'nuhup'運行什麼命令?請在問題中包含完整的命令行和完整的shell腳本(刪除所有不相關的部分)。 – pts

+2

你究竟在做什麼?這對我來說似乎有點X-Y-ish ... – twalberg

+0

通常最好在諸如'$ direc'之類的非選項參數之前包含像'-l'這樣的選項參數。在Linux上,兩者都可以工作;任何不使用GNU'ls'(或者更一般地說,命令中的GNU'getopt()'或'getopt_long()'函數)的地方,除非選項位於非選項之前,否則它將不起作用。通常最好使用'var = $(...)'而不是''var ='...'''。 –

回答

1

嘗試這樣的事情,

NUMBER_OF_FILES=$(find . -maxdepth 1 -type f | wc -l) 
echo $NUMBER_OF_FILES 

即找到(從當前目錄)的1 A最大深度(例如當前目錄中唯一的)一切,這是類型的「文件」,再算上行數。最後,將其結果分配給NUMBER_OF_FILES。