Читайте также
Свойства StdErr, StdIn, StdOut
Доступ к стандартным входным и выходным потокам с помощью свойств StdIn, StdOut и StdErr можно получить только в том случае, если сценарий запускался в консольном режиме с помощью cscript.exe. Если сценарий был запущен с помощью wscript.exe, то при попытке обратиться к
Свойства StdOut, StdIn и StdErr
Работать c потоками StdOut, StdIn и StdErr объекта WshScriptExec можно с помощью тех же методов, которые применяются в объекте WScript для доступа к соответствующим стандартным потокам (см. табл. 1.3). Например, запустив приведенный в листинге 1.27 сценарий ConToWin.js с помощью
Стандартные потоки: stdin, stdout, stdeir, stdaux, stdprn.
Когда программа начинает выполняться, автоматически открываются пять потоков. Эти потоки — стандартный ввод (stdin), стандартный вывод (stdout), стандартный вывод для сообщений об ошибках (stderr), стандартный последовательный порт (stdaux) и
Пример 3-1. Вложенные блоки и перенаправление ввода-вывода
#!/bin/bash# Чтение строк из файла /etc/fstab.File=/etc/fstab{read line1read line2} < $Fileecho "Первая строка в $File :"echo "$line1"echoecho "Вторая строка в $File :"echo "$line2"exit
Пример 11-6. Чтение командой read из файла через перенаправление
#!/bin/bashread var1 <data-fileecho "var1 = $var1"# Первая строка из "data-file" целиком записывается в переменную var1read var2 var3 <data-fileecho "var2 = $var2 var3 = $var3"# Обратите внимание!# Поведение команды "read" далеко от ожидаемого!# 1) Произошел возврат
Пример 11-23. Сценарий, завершающий себя сам с помощью команды kill
#!/bin/bash# self-destruct.shkill $$ # Сценарий завершает себя сам. # Надеюсь вы еще не забыли, что "$$" -- это PID сценария.echo "Эта строка никогда не будет выведена."# Вместо него на stdout будет выведено сообщение "Terminated".exit 0# Какой
Пример 12-1. Создание оглавления диска для записи CDR, с помощью команды ls
#!/bin/bash# burn-cd.sh# Сценарий, автоматизирующий процесс прожигания CDR.SPEED=2 # Если ваше "железо" поддерживает более высокую скорость записи -- можете увеличить этот параметрIMAGEFILE=cdimage.isoCONTENTSFILE=contentsDEFAULTDIR=/opt #
16.1. С помощью команды exec
Команда exec <filename перенаправляет ввод со stdin на файл. С этого момента весь ввод, вместо stdin (обычно это клавиатура), будет производиться из этого файла. Это дает возможность читать содержимое файла, строку за строкой, и анализировать каждую введенную
Пример 16-2. Перенаправление stdout с помощью exec
#!/bin/bash# reassign-stdout.shLOGFILE=logfile.txtexec 6>&1 # Связать дескр. #6 со stdout. # Сохраняя stdout.exec > $LOGFILE # stdout замещается файлом "logfile.txt".# ----------------------------------------------------------- ## Весь вывод от команд, в данном блоке, записывается в файл
Пример 16-4. Перенаправление в цикл while
#!/bin/bashif [ -z "$1" ]then Filename=names.data # По-умолчанию, если имя файла не задано.else Filename=$1fi# Конструкцию проверки выше, можно заменить следующей строкой (подстановка параметров):#+ Filename=${1:-names.data}count=0echowhile [ "$name" != Smith ] # Почему переменная $name взята
Пример 16-6. Перенаправление в цикл until
#!/bin/bash# То же самое, что и в предыдущем примере, только для цикла "until".if [ -z "$1" ]then Filename=names.data # По-умолчанию, если файл не задан.else Filename=$1fi# while [ "$name" != Smith ]until [ "$name" = Smith ] # Проверка != изменена на =.do read name # Чтение из $Filename, не со
Пример 16-9. Перенаправление в конструкции if/then
#!/bin/bashif [ -z "$1" ]then Filename=names.data # По-умолчанию, если файл не задан.else Filename=$1fiTRUE=1if [ "$TRUE" ] # конструкции "if true" и "if :" тоже вполне допустимы.then read name echo $namefi <"$Filename"# ^^^^^^^^^^^^# Читает только первую строку из файла.exit