私はCで書かれた私のクラスの1つのLinuxシェルを作成しました。シェルはls、pwd、ps、top、cdなどのコマンドを完全に実行します。LinuxシェルでMakefileを使用するとエラーが発生する
しかし、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