2014-05-19 112 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。