C로 작성된 클래스 중 하나에 대해 Linux 쉘을 만들었습니다. 쉘은 ls, pwd, ps, top, cd 등과 같은 명령을 완벽하게 실행합니다.Linux 쉘용 Makefile 사용 중 C로 작성된
그러나 MakeFile (제출 프로세스의 일부이기 때문에)을 사용하면 터미널에서 "make test"명령을 사용할 때 내 프로그램의 모든 올바른 출력 사이에 tcsetpgrp: Inappropriate ioctl for device"
오류가 발생합니다. Makefile 내에서 나는 test: test.txt | .project4.c
을 가지고 있는데 test.txt는 쉼표 대신 줄 바꿈으로 구분 된 ls, pwd, ps, top, cd 명령입니다. 이 오류는 무엇이며 어떻게 제거합니까?
PAWPRINT=myname
project4:
clean:
rm -f *.o
nuke:
rm -f *.o project4 *.gz
test: project4
cat test.txt | ./project4
submit.sh:
wget -O submit.sh http://somewebsite.com/submit.sh
chmod +x submit.sh
project4.tar.gz: project4.c test.txt Makefile
mkdir -p dist
cp $^ dist
tar -cvzf [email protected] dist
submit: submit.sh project4.tar.gz
PAWPRINT=$(PAWPRINT) sh submit.sh project4.tar.gz
가 여기 내있는 test.txt 파일입니다 :
여기 내 메이크 인 메이크 파일의 외부에 개별적으로 명령을 실행할 수 있습니다
sleep 1000 &
jobs
pwd
ls
echo hello > a.txt
echo world > b.txt
cat a.txt b.txt > c.txt
cat c.txt
내 프로그램. 할당 명령이 무엇인지에 대한 이유 때문에이 명령을 처리하도록 프로그램을 설계했습니다.
전체 Makefile을 게시하십시오. – user1202136
'cd' 명령을 Makefile 레시피에 넣는 것은 효과가 없으므로 의심스러운 것으로 들립니다. Makefile 레시피에'top'을 넣는 것은 더욱 의심 스럽습니다. 쉼표로 명령을 분리하는 것과 관련하여? 내가 아는 쉘 같은 언어가 없다. 따라서 user1202136이 말한대로 Makefile을 게시하십시오. – Celada
Makefile 내부에서 Cat을 쓸모 없게 사용. – Kaz