相关疑难解决方法(0)

为什么在bash中合法的命令之前设置变量?

我刚刚遇到了几个答案,例如解析一个分隔的文本文件......使用构造:

while IFS=, read xx yy zz;do
    echo $xx $yy $zz
done < input_file
Run Code Online (Sandbox Code Playgroud)

其中IFS变量设置在read命令之前。

我一直在阅读bash 参考,但无法弄清楚为什么这是合法的。

我试过

$ x="once upon" y="a time" echo $x $y
Run Code Online (Sandbox Code Playgroud)

从 bash 命令提示符,但没有得到任何回应。有人可以指出我在引用中定义该语法的位置,该引用允许以这种方式设置 IFS 变量吗?这是特殊情况还是我可以用其他变量做类似的事情?

shell bash environment-variables

93
推荐指数
4
解决办法
4万
查看次数

bash 脚本在命令上的临时值

像下面的命令,

if true; then
   IFS=":" read a b c d e f <<< "$test"
Run Code Online (Sandbox Code Playgroud)

书中说,当赋值命令(IFS ":")在主命令(read a b c d e f <<< "$value")之前使用时,它的值暂时对主命令有效。因此,该read命令使用 delimiter :

但是,就像这个命令,

if true; then
   HOME="hello" echo "$HOME"
Run Code Online (Sandbox Code Playgroud)

回声消息不是你好。上述命令的真正含义是什么?

bash environment-variables

13
推荐指数
2
解决办法
9978
查看次数

标签 统计

bash ×2

environment-variables ×2

shell ×1