Bash:从程序接收输入时如何使用while循环?

时间:2013-10-08 13:35:03

标签: bash while-loop readline

我正在尝试在即将发生的硬盘崩溃之前备份歌曲。快!

我将ls的输出保存到文件中。然后我尝试读取所述文件的名称,我正在尝试备份这些文件。大多数乐队和艺术家的问题是他们使用多个单词(例如“莱昂国王”)。无论如何阅读它认为我想要目录“国王”,“的”,“莱昂”。我沮丧地写了这个脚本,pc是一个c程序,它从我桌面上的文件中读取文件的名称,因为我以为我可能无法以正常的方式读取名称。现在我需要知道如何使用while循环读取程序返回0之前从“pc”输出的名称。

这是我的剧本:

#!/bin/bash
i="nonsense"
while i=$(./pc)
    cp -r "\"/Volumes/Macintosh HD 1/Users/mac/Music/iTunes/iTunes Music/$(echo $i)\"" "\"iTunes/$(echo $i)\""
done
exit 0

任何想法?

1 个答案:

答案 0 :(得分:1)

您可以尝试:

#!/bin/bash

while read i; do
    cp "/Volumes/Macintosh HD 1/Users/mac/Music/iTunes/iTunes Music/$i" "iTunes/$i"
done < <(./pc)
exit 0