Подскажите кто в курсе, как переносить комманды что бы не писать в строчку.
У меня следюущая констркуция
grep пареметр1 ${in} | grep параметр2 | grep параметр3 > ${OUT}Нужно:
grep пареметр1 ${in} | \
grep параметр2 | \
grep параметр3 > ${OUT}В linux такая конструкция рабоатет, в Solaris нет.
> grep параметр2 | \
> В linux такая конструкция рабоатет, в Solaris нет.А должно бы, судя по http://www.opennet.me/man.shtml?topic=sh&category=1
в районе ""If a backslash is used to escape a newline character"".Продолжение осмотра: версия S., реализации и версии sh, его(sh) man-а и т.д.
Ну, или сделать быстро -- #!/bin/bash или #!/usr/bin/env bash --.
У меня в Solaris работает.$ bash --version
GNU bash, version 3.00.16(1)-release (sparc-sun-solaris2.10)$ cat /etc/release
Oracle Solaris 10 9/10 s10s_u9wos_14a SPARC
Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
Assembled 11 August 2010
Нет не пашет..., в чем интересно может быть дело...-bash-3.2# bash -version
GNU bash, version 3.2.51(1)-release (sparc-sun-solaris2.10)
Copyright (C) 2007 Free Software Foundation, Inc.
-bash-3.2# cat temp
User Management:solaris:cmd:::/usr/sbin/groupadd:uid=0
User Management:solaris:cmd:::/usr/sbin/groupdel:uid=0
User Management:solaris:cmd:::/usr/sbin/groupmod:uid=0
User Management:solaris:cmd:::/usr/sbin/roleadd:uid=0
User Management:solaris:cmd:::/usr/sbin/roledel:uid=0
User Management:solaris:cmd:::/usr/sbin/rolemod:uid=0
User Management:solaris:cmd:::/usr/sbin/useradd:uid=0
User Management:solaris:cmd:::/usr/sbin/userdel:uid=0
User Management:solaris:cmd:::/usr/sbin/usermod:uid=0
User Management:suser:cmd:::/usr/sbin/grpck:euid=0
User Management:suser:cmd:::/usr/sbin/pwck:euid=0
-bash-3.2# cat t1.sh
#!/bin/bash
grep -v "User Management:solaris:cmd:::/usr/sbin/groupadd:uid=0" ./temp |\
grep -v "User Management:solaris:cmd:::/usr/sbin/groupdel:uid=0" ./temp > ./temp1
-bash-3.2# ls
t1.sh temp
-bash-3.2# bash t1.sh
-bash-3.2# cat ./temp1
User Management:solaris:cmd:::/usr/sbin/groupadd:uid=0
User Management:solaris:cmd:::/usr/sbin/groupmod:uid=0
User Management:solaris:cmd:::/usr/sbin/roleadd:uid=0
User Management:solaris:cmd:::/usr/sbin/roledel:uid=0
User Management:solaris:cmd:::/usr/sbin/rolemod:uid=0
User Management:solaris:cmd:::/usr/sbin/useradd:uid=0
User Management:solaris:cmd:::/usr/sbin/userdel:uid=0
User Management:solaris:cmd:::/usr/sbin/usermod:uid=0
User Management:suser:cmd:::/usr/sbin/grpck:euid=0
User Management:suser:cmd:::/usr/sbin/pwck:euid=0
-bash-3.2# wc temp
11 22 590 temp
-bash-3.2# wc temp1
10 20 535 temp1
-bash-3.2#
-bash-3.2# cat t1.sh
#!/bin/bash
grep -v "User Management:solaris:cmd:::/usr/sbin/groupadd:uid=0" ./temp |\
grep -v "User Management:solaris:cmd:::/usr/sbin/groupdel:uid=0" > ./temp1-bash-3.2# bash t1.sh
t1.sh: line 2: \: command not found
> -bash-3.2# cat t1.sh
> #!/bin/bash
> grep -v "User Management:solaris:cmd:::/usr/sbin/groupadd:uid=0" ./temp |\
> grep -v "User Management:solaris:cmd:::/usr/sbin/groupdel:uid=0" > ./temp1Со второым ./temp, вижу, разобрался. Может и с регулярными выражениями пора?
> -bash-3.2# bash t1.sh
> t1.sh: line 2: \: command not found\r\n в конце строки, вместо положенного \n после редактирования виндовым ноутпадом??
Вот что у меня вышло:bash-3.00$ cat temp
User Management:solaris:cmd:::/usr/sbin/groupadd:uid=0
User Management:solaris:cmd:::/usr/sbin/groupdel:uid=0
User Management:solaris:cmd:::/usr/sbin/groupmod:uid=0
User Management:solaris:cmd:::/usr/sbin/roleadd:uid=0
User Management:solaris:cmd:::/usr/sbin/roledel:uid=0
User Management:solaris:cmd:::/usr/sbin/rolemod:uid=0
User Management:solaris:cmd:::/usr/sbin/useradd:uid=0
User Management:solaris:cmd:::/usr/sbin/userdel:uid=0
User Management:solaris:cmd:::/usr/sbin/usermod:uid=0
User Management:suser:cmd:::/usr/sbin/grpck:euid=0
User Management:suser:cmd:::/usr/sbin/pwck:euid=0
bash-3.00$ cat t1.sh
#!/bin/bash
grep -v "User Management:solaris:cmd:::/usr/sbin/groupadd:uid=0" ./temp |\
grep -v "User Management:solaris:cmd:::/usr/sbin/groupdel:uid=0" > ./temp1
bash-3.00$ bash t1.sh
bash-3.00$ cat temp1
User Management:solaris:cmd:::/usr/sbin/groupmod:uid=0
User Management:solaris:cmd:::/usr/sbin/roleadd:uid=0
User Management:solaris:cmd:::/usr/sbin/roledel:uid=0
User Management:solaris:cmd:::/usr/sbin/rolemod:uid=0
User Management:solaris:cmd:::/usr/sbin/useradd:uid=0
User Management:solaris:cmd:::/usr/sbin/userdel:uid=0
User Management:solaris:cmd:::/usr/sbin/usermod:uid=0
User Management:suser:cmd:::/usr/sbin/grpck:euid=0
User Management:suser:cmd:::/usr/sbin/pwck:euid=0
bash-3.00$ wc temp
11 22 590 temp
bash-3.00$ wc temp1
9 18 480 temp1
bash-3.00$
>[оверквотинг удален]
> User Management:solaris:cmd:::/usr/sbin/usermod:uid=0
> User Management:suser:cmd:::/usr/sbin/grpck:euid=0
> User Management:suser:cmd:::/usr/sbin/pwck:euid=0
> -bash-3.2# wc temp
> 11
> 22 590 temp
> -bash-3.2# wc temp1
> 10
> 20 535 temp1
> -bash-3.2#У меня на solaris отработало точно также...
> У меня на solaris отработало точно также...Второй :) "./temp". groupadd-ы пролезают.
Похоже что-то отключено, буду разбиратся, спасибо за содействие.
Если что интересное увижу отпишу. У меня в скриптах еще echo не на всех серверах отрабатывает. Буду сравнивать с макетом.