linux - 如何在shell中同时定义和打印变量值

标签 linux bash shell

我在一个 bash 脚本中遇到问题,因为我已经打印了一个变量的值,然后使用该变量作为另一个变量的输入,但值没有得到打印,因为我知道我已经为变量赋值,然后可以打印。 所以我想知道我是否可以同时定义和打印变量值并将该值存储在函数范围内的另一个变量中使用。

例如。

a="My name is Vikas"  
echo "a=My name is Vikas"  
b="${a} Singh"  
echo "b=${a} Singh"

但我想做以下事情

echo "a=My name is Vikas"  
echo "b=${a} Singh" 

所以输出应该像

a=My name is Vikas  
b=My name is Vikas Singh.

请帮忙

最佳答案

在变量尚未设置的情况下,可以在扩展时进行赋值

a= b=
echo "a=${a:=My name is Vikas}"
echo "b=${b:=${a} Singh}"

from manual

${parameter:=word} If parameter is unset or null, the expansion of word is assigned to parameter. The value of parameter is then substituted. Positional parameters and special parameters may not be assigned to in this way.

后来,我意识到这可能会产生误导:它是 echo "a=.." ,它正在执行赋值但扩展,这让我以不同的方式理解这个问题,可以使用 set -xset -o xtrace 跟踪赋值(像任何其他命令一样)(以撤消 set +xset +o xtrace)(另一个类似的选项 set -v code> 或 set -o verbose 显示扩展前的命令)

set -x
a="My name is Vikas"  
b="${a} Singh"
set +x

将扩展后的赋值写入(文件描述符2)标准错误。

关于linux - 如何在shell中同时定义和打印变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48321480/

相关文章:

linux - 将行传递给函数 - 使用 sed 逐行覆盖 - BASH

linux - 执行 SSH 的 Shell 脚本,然后是进一步的命令

linux - linux 内核如何维护大量的配置选项?

c - 如何在 Client.c 中使用文件作为参数

c++ - 在没有用户输入的情况下中断 cin while 循环

php - 使用 PHP 将图像添加到 mp3 文件的最佳方法?

Bash 脚本 : automate ffmpeg encoding for mpeg-dash

bash - 如何使用 shell 验证 IPv6 地址格式?

linux - bash 脚本运行每个文件夹

python - 顺序调用多个子进程