Bash ksh中的不良替代
我试图传递一个函数两个变量,我想用下划线代替空格作为文件名,即:Bash ksh中的不良替代,bash,shell,ksh,Bash,Shell,Ksh,我试图传递一个函数两个变量,我想用下划线代替空格作为文件名,即: directory=<path to file> file=<name of file> my_function "$directory/${file// /_}" 目录= 文件= 我的函数“$directory/${file//}” 这将在bash和更高版本的ksh中工作,但是我正在使用旧的solaris9机器,结果是一个错误的替换 在旧的KSH环境中,是否有一种干净的方法来实现此功能?您可以使用t
directory=<path to file>
file=<name of file>
my_function "$directory/${file// /_}"
目录=
文件=
我的函数“$directory/${file//}”
这将在bash和更高版本的ksh中工作,但是我正在使用旧的solaris9机器,结果是一个错误的替换
在旧的KSH环境中,是否有一种干净的方法来实现此功能?您可以使用
tr
:
my_function "$directory/$(printf '%s' "$file" | tr ' ' '_')"
您可以使用
tr
:
my_function "$directory/$(printf '%s' "$file" | tr ' ' '_')"
${dir}/$(echo“$file”| sed的/\ug//')..
。祝你好运,谢谢!虽然我用下划线替换空格,所以sed的//\ug.tr
解决方案在微观上可能更有效(我投票了)。如果要使用sed
,我建议使用printf“…”sed“…”
,就像tr
解决方案一样。祝大家好运。${dir}/$(echo“$file”| sed's/\ug//')…
。祝你好运,谢谢!虽然我用下划线替换空格,所以sed的//\ug.tr
解决方案在微观上可能更有效(我投票了)。如果要使用sed
,我建议使用printf“…”sed“…”
,就像tr
解决方案一样。祝大家好运。