The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Правильное написание скрипта на sh"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Разное / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Правильное написание скрипта на sh"  +/
Сообщение от mgdn (ok) on 01-Ноя-13, 09:51 
Здравствуйте!

В скрипте примерно следующего содержания передаются имена файлов.

root@fr:/tmp/1 # cat ./test.sh
#!/bin/sh
( ls /etc/hosts > /tmp/txt.txt ) > & /tmp/err.txt
( ls /etc/hostsss > /tmp/txt1.txt ) > & /tmp/err1.txt

Может быть передано и несуществующее имя файла. Для того чтобы ошибка не вываливалась на консоль идет вывод ошибки в файл. Если набирать команду из консоли, то отрабатывает правильно и без ошибок.
( ls /etc/hosts > /tmp/txt.txt ) > & /tmp/err.txt

А если в скрипте то
./test.sh: 2: Syntax error: "&" unexpected

Как правильно записать команду в скрипт. Наверно надо как-то правильно экранизировать амперсанд?


Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Правильное написание скрипта на sh"  +/
Сообщение от Andrey Mitrofanov on 01-Ноя-13, 10:12 
> #!/bin/sh

#!/bin/bash

> Как правильно записать команду в скрипт. Наверно надо как-то правильно экранизировать амперсанд?

Зависит от того, считаешь ли ты POSIX sh религией.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Правильное написание скрипта на sh"  –1 +/
Сообщение от Andrey Mitrofanov on 01-Ноя-13, 10:16 
>> #!/bin/sh
> #!/bin/bash

Да, скока ж можно?! Опять бсдешник!

-#!/bin/bash
+#!/usr/bin/env bash

Карма пришла за мной. Не то что за этими [...]ми, поющими дифирамбы фре в новостях и не появляющихся *здесь*.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Правильное написание скрипта на sh"  +2 +/
Сообщение от mgdn (ok) on 01-Ноя-13, 10:45 
>>> #!/bin/sh
>> #!/bin/bash
> Да, скока ж можно?! Опять бсдешник!
> -#!/bin/bash
> +#!/usr/bin/env bash
> Карма пришла за мной. Не то что за этими [...]ми, поющими дифирамбы
> фре в новостях и не появляющихся *здесь*.

Задолбали. Если бы мне надо было #!/bin/bash, я и сам бы смог 2 буквы дописать. Плохо когда человек не умеет писать по существу. Если нечего сказать, то зачем клаву мучать.

>> Да, скока ж можно?! Опять бсдешник!

Смешно..... говорит о возрасте или о воспитании )

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Правильное написание скрипта на sh"  –2 +/
Сообщение от pavel_simple (ok) on 01-Ноя-13, 11:04 
>>> #!/bin/sh
>> #!/bin/bash
> Да, скока ж можно?! Опять бсдешник!
> -#!/bin/bash
> +#!/usr/bin/env bash
> Карма пришла за мной. Не то что за этими [...]ми, поющими дифирамбы
> фре в новостях и не появляющихся *здесь*.

а ты заметил? , что lavr таки стал заглядывать -- присматривает за несчастны^W инвалидами

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

8. "Правильное написание скрипта на sh"  +/
Сообщение от Аноним (??) on 05-Ноя-13, 06:11 
> а ты заметил?

павлик ви таки уже сдали своего папу в ментовку или ещё нет?

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

9. "Правильное написание скрипта на sh"  +/
Сообщение от pavel_simple (ok) on 05-Ноя-13, 07:27 
>> а ты заметил?
> павлик ви таки уже сдали своего папу в ментовку или ещё нет?

обиженый ононим? опять бысданутые кидаются?

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Правильное написание скрипта на sh"  +/
Сообщение от Аноним (??) on 06-Ноя-13, 00:04 
>>> а ты заметил?
>> павлик ви таки уже сдали своего папу в ментовку или ещё нет?
> обиженый ононим? опять бысданутые кидаются?

Аха .... таки сдали?

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

5. "Правильное написание скрипта на sh"  +/
Сообщение от lavr email on 01-Ноя-13, 13:04 
>[оверквотинг удален]
> #!/bin/sh
> ( ls /etc/hosts > /tmp/txt.txt ) > & /tmp/err.txt
> ( ls /etc/hostsss > /tmp/txt1.txt ) > & /tmp/err1.txt
> Может быть передано и несуществующее имя файла. Для того чтобы ошибка не
> вываливалась на консоль идет вывод ошибки в файл. Если набирать команду
> из консоли, то отрабатывает правильно и без ошибок.
> ( ls /etc/hosts > /tmp/txt.txt ) > & /tmp/err.txt
> А если в скрипте то
> ./test.sh: 2: Syntax error: "&" unexpected
> Как правильно записать команду в скрипт. Наверно надо как-то правильно экранизировать амперсанд?

нужно правильно выполнять redirect stdout/stderr

( ls /etc/hosts > /tmp/txt.txt ) >/tmp/err.txt 2>&1
( ls /etc/hostsss > /tmp/txt1.txt ) >/tmp/err1.txt 2>&1

спасет?

собственно что в bourne-shell, что в bash, верхнее почти одинаково

ps. возможно Вам нужно только stdout перенаправлять (без stderr)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Правильное написание скрипта на sh"  +/
Сообщение от михалыч (ok) on 01-Ноя-13, 13:15 
Да и без скобок тоже работает

#!/bin/sh
ls /etc/hosts > /tmp/txt.txt 2> /tmp/err.txt
ls /etc/hostsss > /tmp/txt1.txt 2> /tmp/err1.txt

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Правильное написание скрипта на sh"  +/
Сообщение от mgdn (ok) on 04-Ноя-13, 21:26 
Спасибо, Всем ответившим.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру