Bash:变量没有填充

时间:2012-10-23 10:17:06

标签: bash variables

最初来自:IF grep finds what it is looking fore do X else Y,但原来的问题已得到解答。

$ @的值为“Load firefox / 3.6.12”

var1=$(echo "$@" | grep -Eio '\s\w*') # Gets the application name and put it into var1
echo $var1   # is not printed should be "firefox"
var2=$(echo "$@" | grep -o '[^/]*$')  # Gets version name and put it into var2 
echo $var2 # prints fine

正则表达式很好,它在我改变某些东西之前已经工作了一段时间

编辑:

有问题
var1=$(echo "$@" | grep -Eio '\s\w*') #expected result is: firefox

如果我使用

,我的工作正常
var1="firefox"

我必须在某些方面改变一些事情。

编辑: 解

echo "Load firefox/6.12.3" | awk ‘{print $2}’ | cut -f1 -d”/”

不再使用Grep。

1 个答案:

答案 0 :(得分:0)

尝试在运行之前回显查找 - 看起来你需要修剪var1 var2的文本

echo“find / app / $ var1 -noleaf -maxdepth 1-type l -o -type d | grep $ var2”

if find /app/$var1 -noleaf -maxdepth 1 -type l -o -type d | grep $var2; then

find / app / firefox -noleaf -maxdepth 1-type l -o -type d | grep 3.6.12

所以试试:

var1=${var1//[[:space:]]}
var2=${var2//[[:space:]]}
if find /app/$var1 -noleaf -maxdepth 1 -type l -o -type d | grep $var2; then