bash - 将链接命令回显到剪贴板
问题描述
我有一个脚本,它解析来自 AWS IAM 的响应,创建一个包含环境变量的文件,并将以下命令存储在用户的剪贴板中,用于将环境变量源到他们的 shell 中:
脚本中的相关行:
echo -e "source $env_file_name" | pbcopy
导致这是剪贴板内容:
source NAME_OF_FILE
这有效 - 当用户运行时`pbpaste`
,设置环境变量,并且用户可以访问资源。但是,如果我想通过在剪贴板中存储链接命令来执行该文件的清理,则永远不会到达第二个命令:
echo -e "source $env_file_name;rm $env_file_name" | pbcopy
我尝试过各种变化,例如:
echo -e "source $env_file_name && rm $env_file_name" | pbcopy
粘贴时:
~ > `pbpaste`
zsh: command not found: ;rm
它显然将&&
and解释`
为字符串文字,我不确定如何解决这个问题。
解决方案
扩展命令替换后通常进行的唯一处理是分词和文件名扩展。如果您希望处理其他 shell 语法(例如;
分隔命令),则必须使用eval
.
eval "$(pbpaste)"
推荐阅读
- php - 在 laravel 8 中验证相关数据更新的最佳方法
- sql-server - 如何在 SQL Server 中从今天的日期获取 > 240 天的数据,其中某些记录的特定单元键在 240 天之内和之外
- multithreading - NamedParameterJdbcTemplate 在线程的运行块中调用时抛出 null
- machine-learning - 客户细分还是推荐系统?
- android - 为什么三星 S21 (Android 11) 中未显示捕获的图像
- ruby-on-rails - 每个叶子的 Ruby 哈希路径
- python - 并非所有单元格都被 pandas.to_numeric 更改
- amazon-web-services - 如何在无服务器框架中使用默认值引用外部 aws 资源?
- angular - 角度可编辑表格单元格内联
- python - Django 网站上没有显示变量中的信息