使用'/'进行Bash变量扩展

Jim*_*mbo 5 bash variable-expansion parameter-expansion

在一段时间的读取循环中,我看到了这个变量扩展${line/device name:}.我已经尝试使用自己的输入文件运行脚本,它只打印出行.

你能告诉我扩展在做什么吗?

use*_*253 4

变量名称是line. / 用于字符串替换,即“设备名称:”如果存在于其中的任何位置,则将其$line删除。

> line="a device name: some name"
> echo ${line/device name:}
a  some name
Run Code Online (Sandbox Code Playgroud)

您还可能会看到#%替换,它代表开头line和结尾的替换。另请注意,此类/替换是 bash 特定的功能(例如,ash不支持它,%并且#看似可移植),因此您应该在脚本开头使用#!/bin/bash而不是#!/bin/sh作为 hashbang。