スクリプトに指定された最初の用語がファイル「file.txt」にあるかどうかを確認するために、「isinFile.sh」という小さな bash スクリプトを作成しました。
#!/bin/bash
FILE="file.txt"
if [ `grep -w "$1" $FILE` ]; then
echo "true"
else
echo "false"
fi
ただし、次のようにスクリプトを実行します
> ./isinFile.sh -x
によってオプションとして-x
解釈されるため、スクリプトを中断します。grep
だから私は自分のスクリプトを改善しました
#!/bin/bash
FILE="file.txt"
if [ `grep -w -- "$1" $FILE` ]; then
echo "true"
else
echo "false"
fi
--
grep の引数として使用します。現在実行中
> ./isinFile.sh -x
false
動作します。しかし--
、bash スクリプトでコード/オプションのインジェクションを防ぐための正しい唯一の方法を使用していますか? 実際に見たことはありませんが、ABASH: Finding Bugs in Bash Scriptsで言及されているだけです。