Синтаксис в предложении if неправильный, используйте:
if( a[i]<a[i+1]){
smal=a[i]
}else{
smal=a[i+1]
}
Но он будет печатать значение для каждой строки.
Лучшее решение вашей проблемы:
sort -n file | head -1
head
печатает только первую строку. Или, если это должно быть awk
:
awk 'NR==1{s=$0} $0<p{s=$0} {p=$0} END{print s}' file
NR == 1 {s = $ 0}
, если это первая строка, установите переменную s
. $ 0 , если текущая строка меньше предыдущей, установите для переменной s
это значение.
{p = $ 0}
для каждой строки, установить переменную p
(предыдущая) для следующей итерации. END {print s}
, когда вся строка обработана, вывести значение s
. Изменить: все, что находится в функции, будет выглядеть:
awk 'function f(){ if(NR==1){s=$0} if($0<p){s=$0}p=$0} {f()} END{print s}' file
Вам не хватает -l
для включения формата длинного списка и -t
для сортировки по изменению время.
Выполните:
alias ll='ls -lt --color=auto --time-style=long-iso'
Чтобы также включить скрытые файлы:
alias ll='ls -alt --color=auto --time-style=long-iso'
Чтобы изменить порядок сортировки, сначала самые старые, добавьте -r
:
alias ll='ls -ltr --color=auto --time-style=long-iso'
alias ll='ls -altr --color=auto --time-style=long-iso'