私はそれを定期的に使用している.bashrc
ので、今これを持っています。 withなど、オプションで渡すことができる他の項目を読むことができるようにしたいです。私はこれをどうすることができますか?git status
git diff
-s
git diff
機能一つではなくニックネーム?$#
渡されたパラメータの数がわかるということはわかりますが、行status
48の後にすべてのパラメータを貼り付けるにはどうすればよいですか?
42 # =========================================================
43 # Git
44 # =========================================================
45 g () {
46 case $1 in
47 "s")
48 git status
49 ;;
50 "d")
51 git diff
52 ;;
53 esac
54 }
答え1
"$@"
すべての引数は正しく引用された引数に置き換えられますので、サブコマンドのショートカットを移動して削除してください。
g () {
cmd=$1
shift
case "$cmd" in
s) git status "$@" ;;
d) git diff "$@" ;;
esac
}
git
ただし、これを行うのではなく、代わりに上記のエイリアスを設定することをお勧めします。
git alias s status
git alias d diff
または一つもない場合git-alias
(通常git-extras
)、
git config --global alias.s status
git config --global alias.d diff
(一度だけ実行すると、エイリアスがに保存されます~/.gitconfig
。)
その後、シェルから
alias g=git
g s
パラメータを含め、期待どおりに動作することを確認できます。
答え2
例えば
#!/bin/bash
g () {
for arg in "$@"; do echo "$arg"; done
}
g 1 2 3 4
スクリプトの実行
$ ./git.sh
1
2
3
4