![是否可以使用“${pattern:?word}”格式修改参数扩展触发的错误消息?](https://linux22.com/image/116558/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E2%80%9C%24%7Bpattern%3A%3Fword%7D%E2%80%9D%E6%A0%BC%E5%BC%8F%E4%BF%AE%E6%94%B9%E5%8F%82%E6%95%B0%E6%89%A9%E5%B1%95%E8%A7%A6%E5%8F%91%E7%9A%84%E9%94%99%E8%AF%AF%E6%B6%88%E6%81%AF%EF%BC%9F.png)
假设我有以下脚本test.sh
:
#! /bin/sh -
printf '%s\n' "${1:?empty or missing argument}"
当不带任何命令行参数运行时,其行为如下:
$ ./test.sh
./test.sh: 2: ./test.sh: 1: empty or missing argument
问题:是否可以更改“./test.sh:2:”错误消息的一部分?
答案1
你的问题的答案是“不”;使用该语法应输出您所描述的脚本、行号和引用标准错误的变量。如果您想改变这一点,请将标准错误通过管道传输到一个进程中,以在脚本中将其转换为您想要的格式,该脚本本身运行输出错误消息的脚本。