> php教程 > PHP开发 > awk에 사용되는 쉘 명령 - 간략한 참고 사항

awk에 사용되는 쉘 명령 - 간략한 참고 사항

高洛峰
풀어 주다: 2016-12-15 10:45:56
원래의
1265명이 탐색했습니다.

awk에서 사용되는 쉘 명령에는 두 가지 방법이 있습니다.
1. system()을 사용하세요
2. 인쇄 cmd | "/bin/bash"
http://www.gnu.org/software/gawk/manual/gawk.html#I_002fO-Functions

를 사용하세요. system() 사용
awk 프로그램에서 system() 함수를 사용하여 쉘 명령

을 호출할 수 있습니다. 예: awk 'BEGIN{system("echo abc")}' file

echo abc는 "명령줄"로 사용되고 쉘에 의해 실행되므로 다음과 같은 결과를 얻게 됩니다:



root@ubuntu:~# awk ' BEGIN{system("echo abc ")}'
abc
root@ubuntu:~#


root@ubuntu:~# awk 'BEGIN{v1="echo";v2 ="abc";system( v1" "v2)}'
abc
root@ubuntu:~#


root@ubuntu:~# awk 'BEGIN{v1="echo ";v2="abc" ;system(v1 v2)}'
/bin/sh: echoabc: 명령을 찾을 수 없음
root@ubuntu:~#


root@ubuntu: ~# awk 'BEGIN{v1 =echo;v2=abc;system(v1" "v2)}'
root@ubuntu:~#

위의 예에서 awk가 시스템을 호출하는 방법을 간략하게 분석해 보겠습니다. :
system() 대괄호의 매개변수가 큰따옴표로 묶이지 않은 경우 awk는 이를 변수로 간주하고 먼저 이를 awk 변수의 상수로 바꾼 다음 다시 쉘로 전달합니다

system() 대괄호의 매개변수가 큰따옴표로 묶인 경우 awk는 따옴표 안의 내용을 쉘의 "명령줄"로 직접 쉘에 다시 전달합니다.



2. 인쇄 cmd 사용 | "/bin/bash"
root@ubuntu:~# awk 'BEGIN{print "echo","abc"| "/bin/bash"}'
abc
root@ubuntu :~#


root@ubuntu:~# awk 'BEGIN{print "echo","abc",";","echo","123"| "/bin/bash"} '
abc
123
root@ubuntu:~#


셋. 요약
system()을 사용하든 cmd | "/bin/bash"를 인쇄하든
awk는 새 셸을 열고 해당 cmdline 매개변수가 셸로 다시 전송되므로 현재 셸 변수와 새로 열린 쉘 변수 문제

1.1
root@ubuntu:~# abc=12345567890
root@ubuntu:~# awk 'BEGIN{system("echo $abc")}'

root@ubuntu:~#


1.2
root@ubuntu:~#export abc=12345567890
root@ubuntu:~# awk 'BEGIN{system("echo $abc") }'
12345567890
root@ubuntu:~#

2.1
root@ubuntu:~# abc=1234567890
root@ubuntu:~# awk 'BEGIN {print "echo ","$abc"| "/bin/bash"}'

root@ubuntu:~#


2.2
root@ubuntu:~# 내보내기 abc=1234567890
root@ubuntu:~# awk 'BEGIN{print "echo","$abc"| "/bin/bash"}'
1234567890
root@ubuntu:~#


위의 예에서 내보내기가 없으면 해당 변수는 현재 쉘 변수에만 존재하므로 에코되지 않습니다.
내보내기를 사용하면 모든 환경 변수가 사용됩니다. awk가 새 쉘을 호출하면 에코아웃될 수 있습니다.


awk에서 사용되는 추가 쉘 명령 - 간략한 참고 사항 관련 기사는 PHP 중국어 웹사이트를 참고하세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿