2013-07-07 29 views
0

对不起,如果问题标题混淆。我不太确定如何说出这个问题。我在管理命令的.profile文件中有一个函数。我怎样才能做到这一点?

我在.profile文件中的函数是崇高的文本快捷方式:

function s() { subl "[email protected]" & } 
export -f s 

但是,当我做ls | s我不明白LS的输出在我的崇高窗口。当我做ls | subl我确实在Sublime窗口中获得输出。我可以修改我的功能以正确工作ss file.txtls | s吗?

回答

2

读取背景前需要的任何输入。

s() { 
    # Is stdin a terminal? 
    if [[ -t 0 ]] 
    then 
     #not piping 
     subl "[email protected]" & 
    else 
     #piping 
     contents=$(cat) 
     subl "[email protected]" <<< "$contents" & 
    fi 
} 
+1

你不需要先把内容写下来:'cat - | subl' –

+0

@glennjackman阅读问题 –

+0

完美,谢谢! – Drew

相关问题