【发布时间】:2017-08-17 06:35:29
【问题描述】:
我正在尝试在 bash shell 脚本下执行,但没有得到预期的输出。可能我做错了什么,或者这不是这样做的方式。
#bin/bash
#set -x
path1_one=/home/dell/scripts
echo $path1_one
param_val=path1_one
param1=$( echo "$param_val" | awk -F '_' '{ print $0 }' )
#path2="$path1"
echo $param1
#echo $path2
输出:
/home/dell/脚本
path1_one
预期输出:
/home/dell/脚本
/home/dell/脚本
两个变量的值应该相同,但不知道为什么 param1 的值没有与 path1_one 反映
【问题讨论】:
-
使用
path2="$path1" -
您认为“预期”输出比实际输出更正确的原因并不明显。
param_val=path1_one将 字符串path1_one分配给param_val;为什么会有什么“反映”? -
...如果您想要间接分配或间接扩展,我们已经有明确的问题询问如何做这些事情,并提供清晰易读的答案。
-
@CharlesDuffy, param1=path1_one,所以它应该打印 path1_one 值,即 /home/dell/scripts
-
使用
param_val="$path1_one"而不是param_val=path1_one。正如每个人都告诉你的那样。他们只是使用不同的变量来证明这一点,并希望您根据自己的脚本进行调整。