Paleiskite bash komandą kaip funkciją

Mano ankstesniame klausime sukūriau komandą, kuri grąžina svn failus pagal modelį:

 svn st | grep SomeFolderA | awk {'print $2'} | xargs svn revert 

Dabar aš noriu tai padaryti su komanda, kuri priima argumentą (šablono failą) ir SomeFolderA aukščiau SomeFolderA komandą „ SomeFolderA , naudojant argumentą vietoj „ SomeFolderA . Bandžiau tai pridėti prie mano .bash_profile failo:

 function revert() { "svn st | grep '$1' | awk '{print \$2}' | xargs svn revert" ; } 

Kai revert SomeFolderA gausiu šią išvestį:

 -bash: svn st | grep 'SomeFolderA/' | awk '{print $2}' | xargs svn revert: No such file or directory 

Aš taip pat bandžiau naudoti visą svn kelią, bet jis vis dar neveikia. Kas man trūksta?

0
15 окт. „Avi“ yra nustatytas 15 okt. 2013-10-15 10:39 '13, 10:39 2013-10-15 10:39
@ 2 atsakymai

Sukurkite kintamąjį savo komandų eilutėje ir vykdykite ją.

 function revert() { cmd="svn st | grep '$1' | awk '{print \$2}' | xargs svn revert" eval $cmd } 
1
15 окт. Luis Muñoz atsakymas, pateiktas spalio 15 d 2013-10-15 16:51 '13, 16:51, 2013-10-15 16:51

Nereikia naudoti šios funkcijos, atidėti funkciją, tiesiog naudokite toliau pateiktą scenarijų:

 svn st | grep "$1" | awk '{print \$2}' | xargs svn revert 
0
15 окт. Atsakymą Nancy pateikė spalio 15 d. 2013-10-15 11:24 '13, 11:24, 2013-10-15 11:24

Peržiūrėkite kitus klausimus apie „ arba „ Ask a question“