«io-redirection» 태그된 질문

I / O 리디렉션은 셸 스크립팅에 사용됩니다. 이 기능을 사용하면 명령의 출력을 가져 와서 다른 명령의 입력으로 리디렉션하거나 명령이 표준 입력 스트림이나 터미널 대신 파일에서 입력을 가져올 수 있습니다. 전체 프로세스는 다양한 방식으로 데이터 스트림을 연결하는 데 도움이됩니다.

2
명령 출력을 쉘 변수에 할당하려면 어떻게해야합니까?
표현식의 결과를 변수에 할당하고 문자열로 연결 한 다음 에코합니다. 내가 가진 것은 다음과 같습니다. #!/bin/bash cd ~/Desktop; thefile= ls -t -U | grep -m 1 "Screen Shot"; echo "Most recent screenshot is: "$thefile; 그러나 그 결과는 다음과 같습니다. Screen Shot 2011-07-03 at 1.55.43 PM.png Most recent screenshot is: 따라서에 할당되지 …

10
표준 오류 스트림을 잡는 방법 (stderr)?
오디오 클립의 메타 정보를 얻기 위해 ffmpeg를 사용하고 있습니다. 그러나 나는 그것을 잡을 수 없습니다. $ ffmpeg -i 01-Daemon.mp3 |grep -i Duration FFmpeg version SVN-r15261, Copyright (c) 2000-2008 Fabrice Bellard, et al. configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib --mandir=/usr/share/man --arch=i386 --extra-cflags=-O2 ... 이 ffmpeg 출력은 stderr로 전달됩니다. $ ffmpeg -i …

6
while 루프를 사용하여 여러 서버에 ssh
servers.txt서버 목록 이있는 파일 이 있습니다. server1.mydomain.com server2.mydomain.com server3.mydomain.com 파일을 한 줄씩 읽고 while각 줄을 에코하면 모든 것이 예상대로 작동합니다. 모든 줄이 인쇄됩니다. $ while read HOST ; do echo $HOST ; done < servers.txt server1.mydomain.com server2.mydomain.com server3.mydomain.com 그러나 모든 서버에 ssh하고 명령을 실행하려고하면 갑자기 while루프 작동이 중지됩니다. $ while …


4
cronjob을 / dev / null /에 완전히 침묵 시키려면 어떻게해야합니까?
내 우분투 데스크탑과 데비안 서버에는 1 분마다 실행 해야하는 스크립트가 있습니다 (내 우주 온라인 브라우저 게임 의 미세한 요소를 호출하는 스크립트 ). 문제는 데비안 파생물에서 cron이 /var/log/syslog실행될 때마다 로깅한다는 것입니다. 나는 그것이 반복적으로 실행 된 메시지를 반복해서 보았습니다 /var/log/syslog. Nov 11 16:50:01 eclabs /USR/SBIN/CRON[31636]: (root) CMD (/usr/bin/w3m -no-cookie http://www.spacetrace.org/secret_script.php > …

8
iconv를 입력 파일을 변환 된 출력으로 바꾸려면 어떻게해야합니까?
디렉토리의 모든 * .php 파일을 열거하고 적용하는 bash 스크립트 iconv가 있습니다. STDOUT으로 출력됩니다. -o내 경험에 매개 변수를 추가하면 실제로 변환하기 전에 빈 파일을 작성하기 때문에 변환을 수행하도록 스크립트를 조정 한 다음 입력 파일을 덮어 쓸 수 있습니까? for file in *.php do iconv -f cp1251 -t utf8 "$file" done


1
/ bin / sh를 사용하여 stderr 및 stdout을 / dev / null로 리디렉션
나는 모두를 리디렉션하는 방법의 모든 종류의 시도 stdout와 stderr에를 /dev/null어떤 성공하지. 나는이 문제가 없었던 거의 평생 동안 bash를 가지고 있지만 BSD에서는 한 번은 붙어 있습니다 /bin/sh. 내가 시도한 것 : if ls ./python* 2> /dev/null; then echo found Python fi ... 작동합니다. 파이썬이 없으면 ls의 에러 메시지를 뮤트합니다. 그러나 python.tgz존재하는 …

1
이 명령은 어떻게 합법적입니까? “> file1 <file2 cat”
file2이미 존재 한다고 가정하면 명령은 &gt; file1 &lt; file2 cat 의 콘텐츠를 복사하는 file2것 같습니다 file1. 그러나 나는이 구조를 이해할 수 없습니다. "아무것도"가 file1(콘텐츠를 만들거나 지우는 ) 것으로 향하고 있음을 이해합니다 . 그런 다음의 내용 file2이로 전달됩니다 file1. 왜 cat후 file2? cat file2피연산자가 올바른 순서가 아닌지 어떻게 알 수 있습니까?

5
sudo로 경로 재 지정 또는 파이핑을 포함하는 명령을 실행하는 방법은 무엇입니까?
루트 계정 대신 sudo를 사용하는 모범 사례라고 가정합니다. 다음과 같은 간단한 concat 파일 작업을 실행 중입니다. sudo echo 'clock_hctosys="YES"' &gt;&gt; /etc/conf.d/hwclock 일반 사용자로 실행중인 "&gt;&gt;"오른쪽에 실패합니다. 추가 sudos 추가도 실패합니다 (파일이 아닌 sudo 명령으로 파이핑 한 후 예상되는 동작). 예는 그저 루트 계정으로 확인 및 테스트되었습니다.

2
here-documents 및 cat과 함께 출력 리디렉션을 어떻게 사용합니까?
다른 명령으로 파이프하거나 파일로 리디렉션하려는 스크립트가 있다고 가정 해 보겠습니다 ( sh예를 들어 파이프 ). 내가 bash를 사용하고 있다고 가정하십시오. 나는 그것을 사용하여 그것을 할 수있다 echo: echo "touch somefile echo foo &gt; somefile" | sh 또한 다음을 사용하여 거의 같은 작업을 수행 할 수 있습니다 cat. cat &lt;&lt; EOF …


3
파일 디스크립터 닫기> &-vs <&-
내가 읽고있는 bash 튜토리얼에서 읽을 파일 설명자를 열면 exec 3&lt; echolist 그런 다음 이렇게 닫아야합니다. exec 3&lt;&amp;- 그러나 쓰기 위해 파일 디스크립터를 열면 다음과 같이 닫아야합니다. exec 3&gt;&amp;- 그러나 인터넷을 살펴보면 사람들이 파일을 열고 다음과 같이 닫는 것을 볼 수 있습니다. exec 3&gt;&amp;- 참고 : 튜토리얼에 따르면을 사용해야합니다 exec 3&lt;&amp;1. …

5
명령 행 프로그램이 출력이 재 지정되는 것을 막을 수 있습니까?
나는 이것을하는 데 너무 익숙해졌습니다. someprogram &gt;output.file 프로그램이 생성하는 출력을 파일에 저장하려고 할 때마다 수행합니다. 또한이 IO 리디렉션 의 두 가지 변형을 알고 있습니다 . someprogram 2&gt;output.of.stderr.file (stderr 용) someprogram &amp;&gt;output.stderr.and.stdout.file (stdout + stderr 겸용) 오늘 나는 불가능하다고 생각한 상황을 겪었습니다. 다음 명령을 사용하고 xinput test 10예상대로 다음과 같은 결과가 …


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.