私はmakefileのように動作するbashスクリプトを作りたいと思っています。 -archive、-clean、-backupなどのオプションがあります。 唯一の要件は、名前を指定するために-o引数が必要であることです。 私が今いる問題は、引数から.cファイルを引き出す方法がわかりません。例えばmakefileのように動作するBashスクリプト
、私は名前-backup hello_world.cのprint.c -o ./compile.sh をinputed場合
私はこれをどのようにコンパイルしますか?
これまでのコードは次のとおりです。あなたは、組み込みの解析オプションのためのbash、getopts(1P)を探しているように見える
#!/usr/local/bin/bash
if [ $1 != '-o' ]; then
echo "ERROR -o wasn't present as first argument"
echo "HELP"
echo "BASH syntax: $ compile –o filename –clean –backup –archive -help cfilenames"
echo "WHERE:"
echo "$ Unix Prompt"
echo "comiple Name of bash program"
echo "-o filename Mandatory Argument"
echo "-clean Optional and when present deletes all .o files"
echo "-backup Optional and copies all .c and .h files into backup directory"
echo "-archive Optional and Tars content of source directory. Then moved to backup directory"
echo "-help Provides list of commands"
echo "cfilenames Name of files to be compiled together"
fi
NAME=$2
shift
shift
[email protected]
arguments=($options)
index=0
for argument in $options
do
index=`expr $index + 1`
case $argument in
-clean) echo "clean" ;;
-backup) echo "backup"
mv -f *.c ~/backup
mv -f *.c ~/backup ;;
-archive) echo "archive"
tar -zcvf backup.tar.gz *
mv -f backup.tar.gz ~/backup/backup.tar.gz
;;
-help) echo "help"
echo "HELP"
echo "BASH syntax: $ compile –o filename –clean –backup –archive -help cfilenames"
echo "WHERE:"
echo "$ Unix Prompt"
echo "comiple Name of bash program"
echo "-o filename Mandatory Argument"
echo "-clean Optional and when present deletes all .o files"
echo "-backup Optional and copies all .c and .h files into backup directory"
echo "-archive Optional and Tars content of source directory. Then moved to backup directory"
echo "-help Provides list of commands"
echo "cfilenames Name of files to be compiled together"
;;
esac
done
exit;
おかげ
なぜmakeだけではないのですか? –
新しいことを試したかったのです。 –