$ cat news# news: print news files, version 1HOME=. # debugging onlycd . # place holder for /usr/newsfor i in `ls -t * $HOME/.news_time`do case $i in */.news_time) break ;; *) echo news: $iesacdonetouch $HOME/.news_time$ touch .news-time$ touch x$ touch y$ newsnews: ynews: x$Команда
touchnews_time*case/news_time$ rm .news_time$ news$Отсутствие ответа удивляет и является ошибочным. Это вызвано тем, что когда команда
ls$ cat news# news: print news files, version 2HOME=. # debugging onlycd . # place holder for /usr/newsIFS='' # just a newlinefor i in `ls -t * $HOME/.news_time 2>&1`do case $i in *' not found') ;; */.news_time) break ;; *) echo news: $i ;;esacdonetouch $HOME/.news_time$ newsnews: newsnews: ynews: x$Мы должны были установить
IFS./.news_time not foundне распознавалось как три слова.
Команда
newssetls -l$ ls -l news-rwxrwxrwx 1 you 208 Oct 1 12:05 news$ set `ls -l news`-rwxrwxrwx: bad option(s)$Это один из тех случаев, когда взаимозаменяемость программы и данных на языке
shellset-rwxrwxrwx$ set X`ls -l news`$ echo "news: ($3) $5 $6 $7"news: (you) Oct 1 12:05$Здесь представлен разумный формат с указанием автора и даты сообщения вместе с именем файла. Приведем окончательный вариант команды
news# news: print news files, final versionPATH=/bin:/usr/binIFS='' # just a newlinecd /usr/newsfor i in `ls -t * $HOME/.news_time 2>&1`do IFS=' ' case $i in *' not found') ;; */.news_time) break ;; *) set X`ls -l $i` echo " $i: ($3) $5 $6 $7 " cat $i esacdonetouch $HOME/.news_timeДополнительные символы перевода строк разделяют в заголовке при печати фрагменты новостей. Первым значением
IFSnot foundlsIFSlsДобавьте в команду news флаг
-ntouch .news_time.profile