1
実行ファイルの名前をパラメータとして使用し、実行ファイルパスにjenkinsによってアーカイブされた実行ファイルをインストールするbourneスクリプトがあります。実行ファイルのbash TABオートコンプリートパラメータ候補を設定する
[email protected]:~# cat `which jinstall`
#! /bin/sh
if [ "$#" -eq 2 ]; then
if ! [ -e "/var/lib/jenkins/jobs/$1/builds/$2/archive/$1" ]; then
echo "$1 build $2 not found"
exit 1
fi
rm /opt/user/bak/$1 2>/dev/null
mv /opt/user/bin/$1 /opt/user/bak 2>/dev/null
cp /var/lib/jenkins/jobs/$1/builds/$2/archive/$1 /opt/user/bin
chown root:user /opt/user/bin/$1
chmod 650 /opt/user/bin/$1
ls -al /opt/user/bin/$1
else
echo "Usage: jinstall <executable> <build_number>"
fi
私が持っている質問です:私はこのスクリプトのパラメータについては、bashのオートコンプリートの候補を設定するのですか?これはBASHシェル用です。
"killall"のようなコマンドといくつかの文字を入力してTabキーを押すと、bashは実行可能ファイル名でパラメータを自動完成します。私は感謝
:あなたのファイル名が空白のシンボルが含まれていないという仮定の下で自動補完を希望。タイム! –
また、シェル内の自動補完を防ぐために関数名を__jinstall_completionに変更し、追加しました。 [\ 'which jinstall | wc -l \' -eq 0];その後に戻ります。 fiを使用して非rootユーザーを制限する tyvm –