bash 中的 $_ 与 dash 脚本

roo*_*099 1 bash debian sh

我需要移植一个短脚本bashdash(即shDebian的10下)。它包含以下行:

chown root:www-data /etc/nginx/conf.d && chmod 775 $_
Run Code Online (Sandbox Code Playgroud)

这现在失败了,因为$_保留了上一个命令的最后一个参数(即/etc/nginx/conf.d),bash但现在使用 non-interactive 保留了不同的值dash。作为另一个例子,从bash -c 'echo 1 2 && echo $_'和 的输出dash -c 'echo 1 2 && echo $_'也不同。

形成上述类型的“简洁”语句的典型方法是什么dash(不诉诸更专业的命令,例如install)?

cev*_*ing 5

写个函数就行了。

chownmod () { chown "$1" "$3" && chmod "$2" "$3"; }
Run Code Online (Sandbox Code Playgroud)

并用以下内容替换该行。

chownmod root:www-data 775 /etc/nginx/conf.d
Run Code Online (Sandbox Code Playgroud)