私は同様のスクリプトを持っています
#!/bin/bash
echo -n "User: "
read -e username
echo -n "Password: "
read -es password
export http_proxy="http://$username:$password@localhost:40080"
export https_proxy="http://$username:$password@localhost:40080"
$@
unset http_proxy
unset https_proxy
ユーザー/パスワードを読み、エージェントをエクスポートし、エージェントが必要なコマンドを実行してからクリーンアップします。効果があるしかし、私はこれを試してみます:
#!/bin/bash
echo -n "User: "
read -e username
echo -n "Password: "
read -es password
export http_proxy="http://$username:$password@localhost:40080"
export https_proxy="http://$username:$password@localhost:40080"
したがって、source proxyscript
毎回ユーザーを入力したり通過したりすることなく、セッション全体でプロキシを使用でき、入力を待つがエクスポートできます。http://:@localhost:40080
もしそうなら、私が何を間違っているか、どのように動作させることができますか?
(引数として渡して$1
/$2
または類似のものを使用できることを知っていますが、記録でパスワードを開く必要がないようにしたいと思います)
編集/解決策:
bash
答えに基づいて、小さな変更だけで互換性がありますzsh
。
#!/bin/bash
echo -n "User: "
read username
echo -n "Password: "
read -s password
export http_proxy="http://$username:$password@localhost:40080"
export https_proxy="http://$username:$password@localhost:40080"
デフォルトではロゴe
のみを削除しました。
ベストアンサー1
なぜ動作しないのか分かりません。私はうまくいきます。
$ source foo.sh
User: terdon
Password: ~ $ ## I entered the password here, you can add an echo to clear the line
$ echo "$http_proxy"
http://terdon:myPass@localhost:40080
$ echo "$https_proxy"
http://terdon:myPass@localhost:40080
read -p
代わりにを使用しecho
てnullを追加して行を消去しecho
ますが、それ以外の方法は機能するはずです。
#!/bin/bash
read -p "User: " -e username
read -p "Password: " -es password
echo ""
export http_proxy="http://$username:$password@localhost:40080"
export https_proxy="http://$username:$password@localhost:40080"
. foo.sh
今(またはbashを使用しているので)これを行うことができ、期待どおりに動作するはずsource foo.sh
です。