这可能是新手逃避的问题。我正在尝试在这样的for循环中运行命令
$ for SET in `ls ../../mybook/WS/wsc_production/`; do ~/sandbox/scripts/ftype-switch/typesort.pl /media/mybook/WS/wsc_production/$SET ./wsc_sorter/$SET | tee -a sorter.log; done;
但最终sorter.log
为空。 (我确定是一些输出。)如果我转义管道符号(\|
),我最终根本没有sorter.log
。
我做错了什么?
$ bash --version
GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)
编辑:糟糕,/ media / mybook /睡着了,所以实际上没有输出。首先是代码是正确的。不过,感谢大家的评论。
答案 0 :(得分:4)
你正在使用tee
,所以如果有输出,你会在终端上看到它。你看到了什么?
如果你看到输出,那么你可能看到的是stderr,所以你可能想要重定向它:
dir1=$HOME/sandbox/scripts/ftype-switch
dir2=/media/mybook/WS/wsc_production
for SET in ../../mybook/WS/wsc_production/*; do
$dir1/typesort.pl $dir2/$SET ./wsc_sorter/$SET 2>&1 | tee -a sorter.log
done
答案 1 :(得分:3)
dir1=$HOME/sandbox/scripts/ftype-switch
dir2=/media/mybook/WS/wsc_production
for SET in ../../mybook/WS/wsc_production/*; do
$dir1/typesort.pl $dir2/$SET ./wsc_sorter/$SET 2>&1
done | tee -a sorter.log
答案 2 :(得分:2)
我最深的道歉,问题出在其他地方,我的脚本实际上根本没有输出任何东西。现在它有效。
有两个原因让我觉得这个问题在逃避:
嗯,那是因为我在获取知识方面遇到了一些绊脚石...... :)