如何将输出作为参数传递给另一个命令?

时间:2014-10-08 21:04:52

标签: bash while-loop pipe gnome

我正在使用命令

gsettings2 monitor org.gnome.desktop.background picture-uri| cut -f2 -d "'"

这正确地给了uri改变了壁纸。 我想将每个这样的值传递给函数foo,以便

function foo {
    echo "Value changed $1"
}

执行。我该怎么做?

1 个答案:

答案 0 :(得分:3)

gsettings2 ... | stdbuf -oL cut -f2 -d "'" | while read -r uri; do
    foo "$uri"
done

while read循环为其读取的每个URI调用foostdbuf -oL调用是强制cut进行行缓冲,因此其输出立即可见。