如何在等号后将 .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

您需要引用命令替换,以防止 shell 将命令的输出拆分cat为字符$IFS(默认为空格、制表符和换行符)中的单独单词,并避免让 shell 对每个单词执行文件名通配。

简而言之,

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

或者,使用更新且更友好的$(...)语法并摆脱cat

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

也可以看看:

相关内容