スクリプトでユーザー入力を再利用する

スクリプトでユーザー入力を再利用する

動作する次のスクリプトがあります。

#!/bin/bash

xfreerdp /cert-ignore /f /v:farm.company.com /d:company.com /g:rds.company.com /u:$(zenity --entry --title="Username" --text="Username") /gd:company.com /gu:$(zenity --entry --title="Username" --text="Username") /gp:$(zenity --password --title="Password" --text="Password") /p:$(zenity --password --title="Password" --text="Password")

ただし、これは2つのユーザー名プロンプトと2つのパスワードプロンプトが表示されることを意味します。ユーザー名とパスワードを一度だけ入力し、その資格情報を2つの場所で使用できるようにするにはどうすればよいですか。

上記のコマンドを使用するには、ユーザー名とパスワードフラグの両方を入力する必要があります。これら2つの設定がないと動作しません。

ベストアンサー1

変数に代入するのはどうですか?

#!/bin/sh
user="$(zenity --entry --title="Username" --text="Username")"
pass="$(zenity --password --title="Password" --text="Password")"

xfreerdp /cert-ignore /f /v:farm.company.com /d:company.com /g:rds.company.com /u:${user} /gd:company.com /gu:${user} /gp:${pass} /p:${pass}

単純に、次のコマンドを実行してパスワードとユーザー名を表示できるので、これは良いアプローチではありません。ps axu

おすすめ記事