よく使う便利なコマンドはまとめて全部しまっちゃおうねぇ。ホームディレクトリにscriptフォルダを作り、そこからsourceコマンドでまとめてあるscriptを呼び出してつかっています。暇な時に簡単な解説つけて更新します。
↓↓↓ここからが内容↓↓↓
ローカルレポジトリと同じ構成の今いるディレクトリを反映し、ファイルを更新できるShellScript
pwd
と<<
をつかって今いるパスを抜き出し、sed
によってパスの前半部分を消去し、gitのパスを引くことで今いるディレクトリのファイルを見つけcp
を使って上書きします。END
が崩れているのは仕様です。バックアップをとりつつ更新もらくらくです。
update.sh
main(){
func(){
echo "copy $i ? y/n"
read w
if [ "$w" == "y" ]; then
y=$(pwd)
z=$(sed 's/\/home\/aki\/program//g' <<END
$y
END
)
cp $i ~/github/portfolio$z/
echo "$i copy"
elif [ "$w" == "n" ]; then
echo "$i didn't"
else
echo "error"
func
fi
}
x=$(ls)
for i in $x
do
func
done
}
echo "script start"
main
echo "script end"
##ディレクトリ内のファイルを消去するかしないか選択し、連続的に消去できるShellScript
ls
で取得したディレクトリ内の値をIO処理させずそのまま変数に代入する方法を見つけたので作ってみました。簡単なスクリプトですがGUIでのあの煩わしさがなくて幸せになれます。
プログラムはgitのレポジトリに置いてあります。
rmCycle.sh
https://github.com/mamepon2580/portfolio/tree/master/ShellScript/rmCycle
rmCycle.sh
main(){
x=$(ls)
for i in $x
do
echo "remove file $i ? y/n"
read y
if [ "$y" == "y" ];then
rm -r $i
echo "$i remove"
elif [ "$y" == "n" ]; then
echo "$i didn't"
else
echo "error"
fi
done
ls
}
echo "start script"
main
echo "end script"
今いる位置を確認しながらディレクトリ内を、縦横無尽に駆け巡るShellScript
ディレクトリ名を覚えられない頭の弱い子で、ls
cd
をいつも交互に繰り返しているので、いっそのと一つにまとめちゃいました。ついでに番号で移動できるようにしたのと、再帰を使って連続的に処理できるようにしています。
プログラムはgitのレポジトリに置いてあります。
lscd.sh
https://github.com/mamepon2580/portfolio/tree/master/ShellScript/lscd
lscd.sh
##lscd.sh
main() {
x=$(ls)
y=$(sed 's/ /\n/g' <<EOF
$x
EOF
)
cat -n <<EOF
$y
EOF
y=($y)
echo "please diectry name or .. or q or number"
read z
if [ "$z" == "q" ] ; then
echo "quit"
elif [ "$z" == ".." ] ; then
cd ..
echo "change directry"
echo "${PWD##*/}"
main
else
w=$(expr $z - 1)
cd ${y[$w]}
echo "change directry"
echo "${PWD##*/}"
main
fi
}
echo "start lscd script"
main
echo "end lscd script"
gitのリポジトリにpull、pushするだけの簡単なShellScript
サルでも覚えられると巷でウワサされるgitコマンドを忘れ、Qiitaの記事を開いてそのまま入力することに疲れてたんだ…。簡単なpull、pushのコマンドをまとめたshellscriptです。
プログラムはgitのレポジトリに置いてあります。
pull.sh
https://github.com/mamepon2580/portfolio/tree/master/shellscript/pull
push.sh
https://github.com/mamepon2580/portfolio/tree/master/shellscript/push
pull.sh
-
pull.sh
はそのまま一緒にリモートリポジトリ送りにされるのが嫌なので、ローカルリポジトリのすぐ上のディレクトリに保存しておきます。pullScript
中身はコマンドを固めただけです。
pullScript(){
cd portfolio
git pull origin master
cd ..
}
echo "start pull script"
pullScript
echo "end pull script"
push.sh
-
push.sh
もpull.sh
と同様に、ローカルリポジトリのすぐ上のディレクトリに保存しておきます。read
で変数 x を入力として受け付けgit commit -m
引数としてコミットコメントを渡します。また変数 y を定義しその値によって分岐させます。※注意if文の条件は[スペース 条件式 スペース]にしないとうまくいきません←ここで二時間位悩んだ。
pushScript(){
cd portfolio
git add .
echo "all file in staging"
echo "please comment"
read x y
git commit -m $x -m $y
echo "all file in local repository"
echo "please :m is master , :b is brunch"
read z
if [ "$z" = ":m" ] ; then
git push origin master
elif [ "$z" = ":b" ] ; then
echo "please brunch name"
read w
git push origin $w:$w
else
echo "error"
fi
cd ..
}
echo "start push script"
pushScript
echo "end push script"