Время листинга каждую секунду как Bash-скрипт - PullRequest
2 голосов
/ 02 мая 2010

здесь впервые, так как я наконец начал изучать программирование. Во всяком случае, я просто пытаюсь печатать время в наносекундах каждую секунду здесь, и у меня есть это:

#!/usr/bin/env bash

while true;
do
 date=(date +%N) ;
 echo $date ;
 sleep  1 ;
done

Теперь, это просто возвращает строку даты, а это не то, что я хочу. Что случилось? Мое обучение было довольно грязным, поэтому я надеюсь, что вы простите меня за это, если это действительно просто. Кроме того, мне удалось это оштрафовать, что сработало по приглашению:

while true ; do date +%N ; sleep 1 ; done

Но это, очевидно, не работает как сценарий?

Отредактируйте, если кто-нибудь увидит это: Ах, это действительно исправляет мою ошибку. Я заметил, что вы не добавили; Это потому, что я определил только переменную? Кроме того, не могли бы вы объяснить, что делает $? Я думал, что это для вызова переменных. И я вижу, что приведенная выше строка действительно будет работать как скрипт; Я ожидал, что вывод даты не будет отображен на экране.

Ответы [ 3 ]

5 голосов
/ 02 мая 2010

Изменение

date=(date +%N) ;

до

date=$(date +%N)
1 голос
/ 12 ноября 2014

Эта версия должна работать

#!/bin/bash

while true; do
 date=$(date +"%N")
 echo Current date is $date
 sleep 1
done
0 голосов
/ 26 июня 2013

Вы также можете заключить вашу команду между "` "(Backtick). Например:

date=`date +%N`

Привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...