linux - 如何在shell脚本中扩展变量?

标签 linux bash shell unix ksh

<分区>

我在数据库中有一列包含以下数据:

sql_proc|test_sql.sql|/home/Desktop/myfile.txt|$IMP_FILES/myFolder|convert

我已将其提取到一个变量中,并使用 cut 命令和 “|” 作为分隔符,并将每个字段保存在不同的变量中。现在让我们考虑 VAR4 包含第 4 个字段,即 $IMP_FILES/myFolder$IMP_FILES 是一个环境变量,值为 /home/OffFiles/Module

如何使用 VAR4 获取 /home/OffFiles/Module/myFolder

最佳答案

使用 bash -c:

newvar="$(bash -c "echo $var")"

使用eval:

newvar="$(eval "echo $var")"

例子:

#!/bin/bash
var='$PATH'
echo "$var" #This will show that $var contains the string $PATH literally

#Using bash -c
newvar="$(bash -c "echo "$var"")"
echo "$newvar"

#using eval
newvar="$(eval "echo "$var"")"
echo "$newvar"

它会打印两次环境变量路径。

关于linux - 如何在shell脚本中扩展变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30918810/

相关文章:

linux - 用于 Linux 中 NI LabVIEW 的 ULX 库

java - 从 Azure 上的进程运行时 Linux 设置 -x

linux - 在 bash 中使用 sed 查找和替换其后继数字

linux - 使用特定的击键从 GUI 启动选择菜单(BASH 脚本)

linux - 如何使 find 和 printf 在 bash 脚本中工作

linux - 使用 tee 在不同 unix 上表现不同的文件就地编辑

linux - 没有 gcc 的 gdb

linux - 两个进程之间的通信是否只有一个Unix Domain Socket?

linux - sed 仅在第一场比赛中插入

bash - 是否可以在bash脚本中剪切特定列并显示该列重复出现的次数?