2013-07-07 2 views
0

Извините, если вопрос озадачен. Я не совсем уверен, как сформулировать этот вопрос.У меня есть функция в моем файле .profile, к которому я подключаю команды. Как я могу это сделать?

У меня есть функция в моем файле .profile, который является аббревиатурой для возвышенного текста:

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

Но, когда я ls | s я не получаю выход логинсервера в моей Блистательной окне. Когда я делаю ls | subl Я получаю вывод в окне Sublime. Могу ли я изменить свою функцию на правильную работу для s и s file.txt и ls | 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

Смежные вопросы