我不想输入公钥的内容,而是想将其内容作为输入传递。使用的命令是
ipa user-mod user --sshpubkey='ssh-rsa AAA ........'
这项工作。
当我做
ipa user-mod user --sshpubkey=`cat ~/.ssh/id_rsa.pub`
或其他组合我收到错误。
ipa:错误:命令“user_mod”最多采用 1 个参数。
如何将文本文件转换为等号后的单个参数?
答案1
您需要引用命令替换,以防止 shell 将命令的输出拆分cat
为字符$IFS
(默认为空格、制表符和换行符)中的单独单词,并避免让 shell 对每个单词执行文件名通配。
简而言之,
ipa user-mod user --sshpubkey="`cat ~/.ssh/id_rsa.pub`"
或者,使用更新且更友好的$(...)
语法并摆脱cat
:
ipa user-mod user --sshpubkey="$(<~/.ssh/id_rsa.pub)"
也可以看看: