"ls -la/etc/passwd"와 같은 유닉스 명령 목록이 들어있는 파일이 있습니다. 이 명령 목록을 반복하고 적절한 조치를 취하고 싶습니다.셸 프로그래밍에서 파일의 명령 목록을 반복합니다.
#!/bin/bash
clear
for cmds in `cat /tmp/cmd`
do
if [ $cmds ] ; then
echo $cmds;
fi
done
하지만, 내가 무엇을 얻을하는 명령이
ls
-la
/etc/passwd
ls
-la
/etc/shadow
하지
ls -la /etc/passwd
ls -la /etc/shadow
처럼 다른 라인에서 깨진 출력은 다음과 같습니다
현재, 내 코드는 같은입니다
아이디어가 있으십니까?
IFS='
'
또는 배쉬 :
당신의 솔루션은 부분적으로 작동했지만 모든 n 또한 입력 필드를 분리하는 데 사용되었습니다.그리고, 잘못된 출력을했습니다. /etc/ssh/sshd_co fig svcs -a | grep 네트워크 etstat -a | grep -i liste 모든 n이 손실되고 incoorectly 새로운 줄이 표시되는 것을 볼 수 있듯이. – Epitaph
죄송합니다. 내 버전의 Bash는 IFS에서 \ n을 특별히 해석합니다. 일반적으로 문자열에 개행 문자를 넣는 것은 작동하지 않습니다. 좀 더 이식성이 좋도록 내 대답을 편집했습니다. 문자열에 개행 문자를 넣거나 Bash의 C 스타일 인용을 사용할 수 있습니다. –