【问题标题】:Shell script variable value not getting update [duplicate]Shell脚本变量值没有得到更新[重复]
【发布时间】: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。正如每个人都告诉你的那样。他们只是使用不同的变量来证明这一点,并希望您根据自己的脚本进行调整。

标签: linux bash shell unix


【解决方案1】:

您需要告诉脚本您要使用变量path1 的值,而不是名称path1

用途:

path2="$path1" 

【讨论】:

  • NullDev,感谢您的快速回复,请参阅我更新的完整脚本。请建议我,如何从 path1 中获取值。
  • 还是一样...param_val="$path1"path1_one 是在哪里定义的?
  • 我希望 param1 是 path1_one 值
  • 为什么会这样?
猜你喜欢
  • 2011-08-24
  • 2021-07-10
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
相关资源
最近更新 更多