system()
関数に問題があります。System()のパラメータC
コマンドx回を実行する小さなプログラムを作成したいと思います。
次のコードは、コマンドを起動することです:私は私のシェルで直接それを書くとき
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
char command[100];
strcpy(command, "(time lance REF_CLIENT_FOUR002542_C FE-ERPCP-REF_CLIENT_FOUR.zip F > result.txt) 2> time.txt");
system(command);
return 0;
}
私のコマンドが働いているが、私はこのプログラムを使用するとき、私はこのエラーを取得:
./lance: [[: introuvable ./lance: [[: introuvable ./lance: [[: introuvable ./lance: [[: introuvable ./lance: erreur de syntaxe ligne 34: `(' inattendue
このエラー意味:
./lance:
[[
: not found
./lance: syntax error at line 34 : '(
' unexpected
私はそのシステムがのように私のコマンドを実行しようと思いますですが、これはプログラムではなくコマンドのように実行したいので時間ランスです...
私はすでにループなしでこのプログラムを実行しようとしましたが、それでも同じです。
私はまた、ls -l
のような簡単なコマンドを試しました。それは働いている。
誰かが私を助けることができれば、私はとても感謝しています!
編集:私の目的は、実行時間に関するデータを得るためにスクリプトを実行することです。そのため、私はこのプログラムを書いています。
EDIT2:これは私のスクリプト「ランス」の一部です:
if [[ $# -ne 3 ]] # 1st not found
then
echo "bla"
exit 1
fi
if [[ ! -f ${1} ]] # 2nd not found
then
echo "bla"
exit 1
fi
if [[ ! -f ${2} ]] # 3rd not found
then
echo "bla"
exit 1
fi
if [[ "${3}" != "F" && "${3}" != "Z" ]] #4th not found
then
echo "bla"
exit 1
fi
if [[ -d TRAVAIL ]] # This is the line 34
then
mv TRAVAIL TRAVAIL_$(date +%d%m%y%H%M%S)
fi
EDIT3:!間違っていたものを見つけるために私を助けてALKためのおかげで私のコードですが、私は#/ binが/追加しました私のスクリプトの1行目でbashを実行し、今は動作しています。
コマンドラインから '(time lance REF_CLIENT_FOUR002542_C FE-ERPCP-REF_CLIENT_FOUR.zip F> result.txt)2> time.txt'と入力するとどうなりますか? –
Cであなたのユースケースを実装するのはちょっとしたことでナットを壊すようなものです。いくつかの基本的なシェルスクリプトを見たいと思っています。 – alk
'system()'のやり方でコマンドを実行しようとしましたか?私。 '/ bin/sh -c"(time lance ...) "' - '$ SHELL'についていくつか仮定しているかもしれません。 –