Здравствуйте. Необходимо написать скрипт shell длиной не более 10 символов, который каждый раз при запуске выводил бы число на 1 большее, чем при предыдущем запуске. Подскажите, может кто знает как это сделать.
мой пример: q 2»f;wc -l<f
q - unknown command, перенаправляем stderr в файл, затем подсчитываем там число строк.
Может у кого получится меньше?
LinuxForum.Fans
Короткий скрипт
Автор: richagok
22 сообщений
5270 просмотров
text
echo>>$0;wc -l <$0text
ls|wc 2>$$ textls|wc 2>$$
text
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:34:06
/tmp/ ls|wc 2>$$
16 16 239
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:34:12
/tmp/ ls|wc 2>$$
zsh: Файл существует: 1841
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:34:13
/tmp/ bash
[lupo@asus-x201e tmp]$ ls|wc 2>$$
17 17 230
[lupo@asus-x201e tmp]$ ls|wc 2>$$
17 17 230
[lupo@asus-x201e tmp]$ ls|wc 2>$$
17 17 230
[lupo@asus-x201e tmp]$text
>$$;ls|wcLupo Alberto - в сабже речь о скрипте, а не о командной строке
>$$;ls|wc
text
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:43:43
/tmp/ >$$;ls|wc
^C
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:43:58
/tmp/ bash
[lupo@asus-x201e tmp]$ >$$;ls|wc
17 17 230
[lupo@asus-x201e tmp]$ >$$;ls|wc
17 17 230
[lupo@asus-x201e tmp]$ >$$;ls|wc
17 17 230
[lupo@asus-x201e tmp]$Lupo Alberto - в сабже речь о скрипте, а не о командной строке
Показать
text
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:48:06
/tmp/ cat test.sh
>$$;ls|wc
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:48:11
/tmp/ zsh test.sh
^C
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:48:31
/tmp/ bash test.sh
29 29 293
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:48:37
/tmp/ bash test.sh
30 30 298
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:48:38
/tmp/ bash test.sh
31 31 303
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:48:39
/tmp/ chmod 755 test.sh
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:48:53
/tmp/ ./test.sh
32 32 308
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:48:58
/tmp/ ./test.sh
33 33 313
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:49:00
/tmp/ ./test.sh
34 34 318
█▓▒░lupo@asus-x201e█▓▒░ Вт дек 24 04:49:02
/tmp/ bash
[lupo@asus-x201e tmp]$ ./test.sh
35 35 323
[lupo@asus-x201e tmp]$ ./test.sh
36 36 328
[lupo@asus-x201e tmp]$ ./test.sh
37 37 333
[lupo@asus-x201e tmp]$ ./test.sh
38 38 338
[lupo@asus-x201e tmp]$
результат соответствует т.з.
результат соответствует т.з.
...мягко говоря, не совсем.
P.S. Ни в чём не упрекаю, просто у меня приступ формализма.
согласен, конечно т.з. подойдет и
text
wc<$0>>$0;согласен, конечно т.з. подойдет и textwc<$0>>$0;
Не работает.
в баше будет
в баше будет
text
[lupo@asus-x201e tmp]$ cat test.sh
wc<$0>>$0;
[lupo@asus-x201e tmp]$ bash test.sh
test.sh: line 2: 1: команда не найдена
[lupo@asus-x201e tmp]$ bash test.sh
test.sh: line 2: 1: команда не найдена
test.sh: line 3: 2: команда не найдена
[lupo@asus-x201e tmp]$ bash test.sh
test.sh: line 2: 1: команда не найдена
test.sh: line 3: 2: команда не найдена
test.sh: line 4: 3: команда не найденаtest.sh: line 2: 1: команда не найдена
test.sh: line 3: 2: команда не найдена
test.sh: line 4: 3: команда не найдена
Желательно конечно чтоб одно число выводило и не из файла команда. А прямо в командной строке
Желательно конечно чтоб одно число выводило и не из файла команда. А прямо в командной строке
У меня в два раза превышен лимит символов
text
[lupo@asus-x201e temp]$ ls|wc -l;>`date +%N`
0
[lupo@asus-x201e temp]$ ls|wc -l;>`date +%N`
1
[lupo@asus-x201e temp]$ ls|wc -l;>`date +%N`
2
[lupo@asus-x201e temp]$ ls|wc -l;>`date +%N`
3
text
ls>$$&
но не факт
text
ls f>>f;wc fв баше, но и то 11
text
echo $[y++]Войдите или зарегистрируйтесь, чтобы ответить.