linux shell将命令结果赋值给变量 shell assign command output to variable

1. 命令

    1.1     反引号``    (也就是tab上面~键)

    
       ~ a=`echo "hello world"`
       ~ echo $a

         hello world


     1.2    $()

        a=$(echo "hello world")
        echo $a

        hello world


2.  实例  截取目录下某个文件名

2.1 需求  拿到目录下时间最近的 以.csh 结尾的文件名(黄色部分)

bash-3.2$ ls -al -rt|grep .csh
-rw-r--r-- 1 testsybnike     692 Apr 11 23:42 iapkg_nike.env.180411.2340.csh
-rw-r--r-- 1 testsybnike     692 Apr 12 03:12 iapkg_nike.env.180412.0311.csh
-rw-r--r-- 1 testsybnike     692 Apr 12 07:13 iapkg_nike.env.180412.0712.csh
-rw-r--r-- 1 testsybnike     692 Apr 12 08:13 iapkg_nike.env.180412.0811.csh
-rw-r--r-- 1 testsybnike     692 Apr 12 09:07 iapkg_nike.env.180412.0906.csh

-rw-r--r-- 1 testsybnike     692 Apr 13 00:58 iapkg_nike.env.180413.0057.csh


2.2  code脚本

#!/bin/csh -x

set cshFile=`ls -l *.csh| tail --lines=1|awk '{print $NF}'`

echo "csh File=$cshFile"

bash 下

test=$(ls -l *.csh| tail --lines=1|awk '{print $NF}')


2.3  csh $()报错 

 set test=$(ls -l *.csh|tail --lines=1|awk '{print $NF}')

Illegal variable name.




阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页