ksh 中的错误替换
Bad substittion in ksh
我正在尝试传递一个函数两个变量,我想用文件名的下划线替换空格,即:
directory=<path to file>
file=<name of file>
my_function "$directory/${file// /_}"
这将在 bash 和更高版本的 ksh 中工作,但是我正在使用较旧的 Solaris 9 机器,结果是错误的替换错误。
有没有一种干净的方法可以在旧的 KSH 环境中实现此功能?
您可以使用 tr
:
my_function "$directory/$(printf '%s' "$file" | tr ' ' '_')"
我正在尝试传递一个函数两个变量,我想用文件名的下划线替换空格,即:
directory=<path to file>
file=<name of file>
my_function "$directory/${file// /_}"
这将在 bash 和更高版本的 ksh 中工作,但是我正在使用较旧的 Solaris 9 机器,结果是错误的替换错误。
有没有一种干净的方法可以在旧的 KSH 环境中实现此功能?
您可以使用 tr
:
my_function "$directory/$(printf '%s' "$file" | tr ' ' '_')"