表示 ";"近くの構文エラー(宿題)

表示

ファイル名を入力するエイリアスを作成し、ファイルが規則的で読み取り可能であることを確認したら、ファイルをバックアップcp -iフォルダにコピーします。$HOME/Backup

私はUNIXに初めて触れたので、これを完了するのに少し難しいことがあります。これは私のコードです。

alias getname='read filename'

alias vfile='getname; if [ ! -f $filename ]; then echo "Irregular file"; (exit 1); elif [ ! -r $file ]; then echo "Not readable"; (exit 2); fi;'


alias backup='vfile; if [ vfile ]; then cp -i $filename $home/Backup; fi;'

エイリアスをテストしたvfile結果、正しく機能します。発生したエラーは次のとおりです。

-bash: syntax error near unexpected token ';'

最初の操作でこれを実行すると、このエラーが発生し始めました。 ifステートメントの前に実行vfileしないと、最後の実行のファイル名が使用されます。コピーする前にエラーが発生していないことをvfile確認してください。vfile

最初のコマンドを追加する前に、vfile次のエラーが発生します。

cp: cannot create regular file '/Backup/*': No such file or directory

しかし、私のホームフォルダにBackupというディレクトリがあり、その原因が何であるかわかりません。

ベストアンサー1

エイリアスvfileはで終わり、;エイリアスはbackupで始まりますvfile;。したがって、;2つの連続したsの間にステートメントはなく、これは許可されません。

$ echo ; ;
bash: syntax error near unexpected token `;'

;最後のものを削除してくださいvfile

おすすめ記事