How to assign the output of a Bash command to a variable?
我在将
这是我的shell代码(循环不会停止):
1 2 3 4 5 6 7 8 | #!/bin/bash pwd= `pwd` until [ $pwd ="/" ] do echo $pwd ls && cd .. && ls $pwd= `pwd` done |
你能找出我的错误吗?
试试:
1 | pwd=`pwd` |
或
1 | pwd=$(pwd) |
NO在空间注意equals的迹象。
也为威斯先生点了;你不assign两
在你assign壳两个变量没有美元符号:
1 2 | TEST=`pwd` echo $TEST |
好的,更好的和可以被嵌套的)但冰槽的backtics AA AA式:
1 2 | TEST=$(pwd) echo $TEST |
永远记住:《美元符号用冰只有当阅读一变。
在这个特殊的病例,注意,有一个叫bash变量
1 2 3 4 5 | #!/bin/bash until ["$PWD" ="/" ]; do echo"$PWD" ls && cd .. && ls done |
使用双注quotes在《变的证明人。如果有必要的话,他们都是可变的(这里的"当前目录)包含空白字符或通配符(
在一般情况下,如有其他答案:上述。
- 你不能使用空格,在"平等的分配:在一个
var=value 槽>,< < /var = value 罢工罢工。 - 《
$ 均值"把你的价值是可变的,至少我不使用它的时候assigning:var=value 槽>,< < /$var=value 罢工,罢工。
你可以做的方式也更复杂的commands,完全是两个以上的实例,全面收购。所以,我说我想要的号码在系统的运行过程和它的大_美元{ }变量num的过程。
所有你想要的。冰Generate命令管道科技的东西它的输出(过程变量count)成的。
它看起来这样的东西:
1 | NUM_PROCS=$(ps -e | sed 1d | wc -l) |
在希望helps添加一些有用的信息,这两个讨论。
这里的你的脚本。
1 2 3 4 5 6 7 | DIR=$(pwd) echo $DIR while ["$DIR" !="/" ]; do cd .. DIR=$(pwd) echo $DIR done |
注的空间,使用quotes和美元符号。