LoginSignup
0
1

More than 5 years have passed since last update.

シェルスクリプトを実行するときの引数の入力補完を設定する

Last updated at Posted at 2018-10-25

プロジェクトの各ディレクトリにupload.shというシェルスクリプトが置いてあって、./upload.sh hostnameとやると、sshやscpでアップロードが行われるようになってます。
素のsshコマンドはbash-completionによって補完が行われれるようになっているけど、これと同じような補完をシェルスクリプトを実行するときにも行いたい。

bash-completion を自分で作る。独自補完を作ってみた。 - それマグで!を参考に、以下のような感じでできました。

.bash_profile
complete_uploadsh() {
  local hosts=`grep "Host ${COMP_WORDS[COMP_CWORD]}" ~/.ssh/config | sed 's/^ *Host  *\(..*\)/\1/'`
  COMPREPLY=( $(compgen -W "${hosts}" ${COMP_WORDS[COMP_CWORD]}  ) )
}
complete -F complete_uploadsh upload.sh
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1