数日前から、私はシェルでスクリプトを書く方法を学び始めました。 2つのパラメータ(ファイル名と特定のディレクトリ)を使用するスクリプトをどのように作成できますか?パラメータが間違っている場合はエラー警告を表示し、正しい場合はそのディレクトリにファイルをコピーしたいと思います。これまで私はこれをしました:
#!/bin/bash
if [ -d $1 ] ; then
???
done
else
echo $1 NOT DIRECTORY
exit 1
fi
ファイルを確認するためのセクションを別々に作成しました。これをどのように組み合わせますか?
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Use- $0 file"
exit 1
fi
if [ -f $1 ]
then
echo "$1 There is no file with that name"
else
echo "$1 There is no file with that name"
fi
私は初めてbashスクリプトに触れて助けをしたいと思います。
答え1
次の構造を使用できます。
まず、パラメータの数が正しいことを確認してください。この場合は2つです。
if arguments not 2 message "Not enough arguments" and exit
パラメーターが有効なファイルとディレクトリーであることを確認してください。
if argument1 not a file message "Not af file" and exit if argument2 not a directory echo "Not a directory" and exit
両方のパラメータが正しい場合、コピーが実行されます。
message "Copying file" copy file to directory
スクリプトがまだ実行されないように、エラーが発生したときに終了することを忘れないでください。
次の場合は、代わりにライナーを使用することもできます。
[[ ! -f "$1" ]] && echo "Not a file" && exit