私は次のスクリプトを見つけました。
#! /bin/bash
if (( $# < 3 )); then
echo "$0 old_string new_string file [file...]"
exit 0
else
ostr="$1"; shift
nstr="$1"; shift
fi
echo "Replacing \"$ostr\" with \"$nstr\""
for file in $@; do
if [ -f $file ]; then
echo "Working with: $file"
eval "sed 's/"$ostr"/"$nstr"/g' $file" > $file.tmp
mv $file.tmp $file
fi
done
彼らが使う線の意味は何ですかshift
?スクリプトは少なくともパラメータで使用する必要があると思いますが…?
ベストアンサー1
shift
bash
パラメータリストの先頭からパラメータを削除する組み込み関数。スクリプトに提供された3つの引数が$1
、で$2
使用できると仮定すると、$3
呼び出しはnewをshift
生成します。 Aは2だけ新しいoldに変換されます。詳しくはこちらをご覧ください。$2
$1
shift 2
$1
$3