子字符串命令在 solaris kshell 中不起作用
Substring command not working in solaris kshell
我正在尝试使用以下命令从字符串中提取子字符串:
propertyPath=$(echo $path|awk '{print substr([=10=],3,$index)}')
但是该命令不会获取 $index
变量的值,因此 return 不是有效的子字符串。
单引号告诉 shell 不要扩展值,因此您必须在 awk 命令周围使用双引号。但是,当你这样做时,你将不得不为你不想提前扩展的变量转义 $ 。
propertyPath=$(echo $path|awk "{print substr(\$0,1,$index)}")
这可行:
propertyPath=$(echo $path|awk '{print substr([=10=],3,'$index')}')
或
propertyPath=$(echo $path|awk -v index=$index '{print substr([=11=],3,index)}')
我正在尝试使用以下命令从字符串中提取子字符串:
propertyPath=$(echo $path|awk '{print substr([=10=],3,$index)}')
但是该命令不会获取 $index
变量的值,因此 return 不是有效的子字符串。
单引号告诉 shell 不要扩展值,因此您必须在 awk 命令周围使用双引号。但是,当你这样做时,你将不得不为你不想提前扩展的变量转义 $ 。
propertyPath=$(echo $path|awk "{print substr(\$0,1,$index)}")
这可行:
propertyPath=$(echo $path|awk '{print substr([=10=],3,'$index')}')
或
propertyPath=$(echo $path|awk -v index=$index '{print substr([=11=],3,index)}')