bash urlencoded 变量仅回显一次

问题描述 投票:0回答:1

这是使用一个参数运行的脚本的简化版本

#!/bin/bash
K1=eval /usr/bin/urlencode "$1" 
echo "$K1" # prints the correct url encoded $1 parameter
echo "$K1" # nothing printed

我查看了其他更复杂的问题/答案,以了解为什么变量会丢失其内容

此外,如果我尝试在其他值(如

$K1
)中使用它,那么在任何时候都不会回显
K2="zgrep $K1$DIR
,我就会失去它的价值。回显
$K2
打印
zgrep $DIR

bash urlencode
1个回答
0
投票

使用

bash -x
运行此命令将很容易发现,
echo
两次都会输出变量的值。您在
K1="eval"
命令的持续时间内分配
urelencode
,其结果只是显示在标准输出上。

我猜你想说的是

k1=$(urlencode "$1")
echo "$k1"
echo "$k1"

这是一个非常常见的初学者问题。

© www.soinside.com 2019 - 2024. All rights reserved.