.txtファイルの内容を等号の後にbashコマンドの引数として渡す方法

.txtファイルの内容を等号の後にbashコマンドの引数として渡す方法

公開鍵の内容を入力するのではなく、その内容を入力として渡したいと思います。使用されるコマンドは

ipa user-mod user --sshpubkey='ssh-rsa AAA ........'

この仕事。

私がするとき

ipa user-mod user --sshpubkey=`cat ~/.ssh/id_rsa.pub`

または、他の組み合わせでエラーが発生します。

ipa:エラー: 'user_mod'コマンドは最大1つの引数を使用します。

等号の後にテキストファイルを単一のパラメータに変換するには?

答え1

catシェルがコマンドの出力を文字(デフォルトではスペース、タブ、および改行)の別々の単語に分割するのを防ぎ、シェルが$IFS各単語に対してファイル名のグロービングを実行しないようにするには、コマンドの置き換えを引用する必要があります。

要するに、

ipa user-mod user --sshpubkey="`cat ~/.ssh/id_rsa.pub`"

または、より新しく、使い慣れた$(...)構文を使用して、次のものを削除しますcat

ipa user-mod user --sshpubkey="$(<~/.ssh/id_rsa.pub)"

また見なさい:

関連情報