将命令输出指定给shell脚本变量
如何将命令输出分配给shell脚本变量将命令输出指定给shell脚本变量,shell,unix,Shell,Unix,如何将命令输出分配给shell脚本变量 echo ${b%?} | rev | cut -d'/' -f 1 | rev ${b%?}给我一个路径。例如:/home/home1 上面的命令将home1作为输出。我需要将此输出分配给shell脚本变量 我尝试了下面的代码 c=${b%?} |rev | cut -d '/' -f 1 | rev echo $c 但它不起作用 要将某个命令的输出分配给变量,需要使用命令替换: variable=$(命令) 对于您的情况: c=$(echo {b
echo ${b%?} | rev | cut -d'/' -f 1 | rev
${b%?}
给我一个路径。例如:/home/home1
上面的命令将home1作为输出。我需要将此输出分配给shell脚本变量
我尝试了下面的代码
c=${b%?} |rev | cut -d '/' -f 1 | rev
echo $c
但它不起作用 要将某个命令的输出分配给变量,需要使用命令替换:
variable=$(命令)
对于您的情况:
c=$(echo {b%?} |rev | cut -d '/' -f 1 | rev)
只是想知道你为什么不试试
basename ${b}
或者只是
echo ${b##*/}
home1
如果要修剪路径中的最后一个数字,请执行以下操作:
b="/home/home1"
echo $b
/home/home1
b=${b//[[:digit:]]/}
c=$(echo ${b##*/})
echo ${c}
home
要将某个命令的输出分配给变量,需要使用命令替换:
variable=$(命令)
对于您的情况:
c=$(echo {b%?} |rev | cut -d '/' -f 1 | rev)
只是想知道你为什么不试试
basename ${b}
或者只是
echo ${b##*/}
home1
如果要修剪路径中的最后一个数字,请执行以下操作:
b="/home/home1"
echo $b
/home/home1
b=${b//[[:digit:]]/}
c=$(echo ${b##*/})
echo ${c}
home
就这样,
variable=`command`
就这样,
variable=`command`
使用
backticks进行嵌套是困难的
应该对c=`${b%?}| rev | cut-d'/'-f1 | rev`没有问题尽管此代码可能有助于解决问题,但它没有解释为什么和/或如何回答问题。提供这种额外的环境将大大提高其长期教育价值。请在回答中添加解释,包括适用的限制和假设。特别值得一提的是,为什么$(…)
优于`…`
。使用倒勾进行嵌套是困难的
应该不会对c=`${b%?}rev|rev|cut-d'/'-f1| rev`有任何问题,尽管这段代码可能有助于解决问题,但它没有解释为什么和/或如何回答这个问题。提供这种额外的环境将大大提高其长期教育价值。请在回答中添加解释,包括适用的限制和假设。特别值得一提的是,为什么$(…)
优于``
。