2016-01-21 7 views
1

Моего CSH сценарийПочему хвост здесь не работает?

#!/bin/csh 
# C-schell script to increase the boundingbox.... 

echo '%\!PS-Adobe-3.0 EPSF-3.0' 
echo '%%BoundingBox: 0 0 1100 1100' 
tail +3 $argv[1] 

Вызывается здесь

csh bbox.csh plt >! plt_P1.ps 

Но у меня есть

csh -f bbox.csh plt 
tail: cannot open ‘+3’ for reading: No such file or directory 

Что tail должен делать? Парень, который написал код использует Дарвин, я на Ubuntu 14.04.

+1

Используйте 'tail -n + 3 ...'. Форма без '-n' устарела на протяжении десятилетий, и не все ее реализации« хвост »все еще допускают ее. – rici

ответ

5

GNU tail не поддерживает этот синтаксис. Вместо этого используйте tail -n +3 "$argv[1]".

Если вы используете, например, Баш, тир или ЗШ в качестве оболочки: вам нужно также модифицировать >! к > в командной строке:

csh bbox.csh plt > plt_P1.ps 
+0

Чтобы ответить на этот вопрос, простой «главный хвост» дал бы решение ... – kebs

+1

Или 'man tail' .. –

+0

@jofel Отлично работает! Но csh bbox.csh plt>! plt_P1.ps, как мне изменить>! для ubuntu? Сценарий Bash отличается в Дарвине. –

1

Tail печатает последние 10 (по умолчанию) строк файла. Используйте опцию -n для большего количества строк.