2009-10-23 25 views
1

这就是我到目前为止 - 我的保管箱公开URL创建脚本的公共URL(getdropbox.com - 我认为gpl)的目录。我LIST文件以下面的方式使用LS创建:将多个命令的结果发送到一个文本文件?

ls -d ~/Dropbox/Public/PUBLICFILES/* > LIST 

dropboxpuburl.sh:

for PATH in `cat LIST` 
do 
    echo $PATH 
    dropbox puburl $PATH > ~/URLLIST/$PATH 
done 

现在,这创造了一系列的文件 - 每一个与他们的Dropbox puburl。

现在的问题是:如何让此脚本将所有公共链接重定向到一个文本文件中,每个文本文件都在一个新行中 - 可能名称为PUBLIC-DIRECTORY-LIST

回答

3

这是你想要实现的吗?

for PATH in `cat LIST` 
    do 
     echo $PATH 
     dropbox puburl $PATH >> filename 
    done 
+0

虽然您可能想删除该文件或将其重置为空循环之前。 – ndim 2009-10-23 09:23:08

+0

这不会列出文件中的输出 - 只有命令 - 但是我已经得到它的工作 - 我应该回答我自己的问题吗? – user191960 2009-10-23 09:25:06

+0

但是我的脚本列出了路径,然后是输出。 – user191960 2009-10-23 09:26:07

0

=>创建文件并在第一行添加内容。 >>添加到新行中。

echo txt=>PUBLIC-DIRECTORY-LIST.txt | 
echo another text>>PUBLIC-DIRECTORY-LIST.txt 
1

好了,我懂了工作使用给了我这里的建议:

for PATH in `cat LIST` 
do 
    echo $PATH 
    dropbox puburl $PATH 
done > PUBLIC-DIRECTORY-LIST 

它创建的目录列表,并在它们下面的公共链路。现在是修剪链接干净文本文件的目录了。

0

您应该使用while read输入重定向而不是forcat filename。另外,为了避免变量名称冲突,我将路径变量改为小写,因为shell已经使用全大写。它不会影响您的交互式shell,但可能会影响脚本中的某些内容。

此外,假设您希望输入文件中的行作为进度指示器显示在屏幕上,但未在输出文件中捕获,则此echo会将其发送到stderr

while read path 
do 
    echo $path >&2 
    dropbox puburl $path 
done <LIST> PUBLIC-DIRECTORY-LIST 
相关问题