bash - bash 与破折号脚本中的 $_
问题描述
我需要从 to 移植一个简短的脚本bash
(dash
即sh
在 Debian 10 下)。它包含以下行:
chown root:www-data /etc/nginx/conf.d && chmod 775 $_
这现在失败了,因为$_
保留了前一个命令的最后一个参数(即/etc/nginx/conf.d
),bash
但现在保留了与 non-interactive 不同的值dash
。作为另一个恰当的例子,输出bash -c 'echo 1 2 && echo $_'
和输出dash -c 'echo 1 2 && echo $_'
也不同。
形成上述类型的“简洁”语句的典型方法是什么dash
(不诉诸更专业的命令,例如install
)?
解决方案
只写一个函数。
chownmod () { chown "$1" "$3" && chmod "$2" "$3"; }
并将该行替换为以下内容。
chownmod root:www-data 775 /etc/nginx/conf.d
推荐阅读
- r - 在 R 中转置时间序列数据
- c# - 对包装类进行通用调用
- python - 二叉搜索树(Python)不显示结果
- ios - CVCalendar:如何覆盖没有显式函数 API 的 CVCalendar 属性?
- node.js - 如何将 MogoDB 对象“解析”为 Nodejs 中的特定 JSON 结构?
- wordpress - Wordpress 中自定义帖子类型的“嵌套”
- php - 如何检查对象中的必填字段?
- jpa - JPA 为什么将 OrderBy 应用于 Set
- apache-nifi - ExtractGrok 如何使用多个正则表达式?
- android - 我想在地图片段和其他框架中显示当前位置和特定的附近地点(例如医院)