cshell的坑

2020-11-20  本文已影响0人  嬉笑的皮皮虾

1 cshell 中获取命令返回值

在使用反引号返回值给cshell中的变量的时候,发现有一个grep命令一直不能赋值成功。最初以为是命令写法有问题。
但是 KK1一直可以工作,KK2一直报no match。

/tool/pandora64/bin/tcsh 

set file = `ls $STEM/*_dj.log`
echo $file
echo $STEM

set is_KK1 = `grep "when*=KK" regress1_dj.log`
set is_KK2 = `grep "when*=KK" regress2_dj.log`

echo $is_KK1
echo $is_KK2

后来发现是is_KK2 的返回值中包含 "-e", 这个好像会被默认识别为参数。
echo $is_KK2的时候就变成: echo -e ........就会报no match.
问题找到了 待解决中...
解决方法,貌似不是-e的问题,

/tool/pandora64/bin/tcsh 

set file = `ls $STEM/*_dj.log`
echo $file
echo $STEM

set is_KK1 = `grep "when*=KK" regress1_dj.log`
set is_KK2 = `grep "when*=KK" regress2_dj.log`

echo $is_KK1
echo "字符$is_KK2"

然后把 "字符$is_KK2"作为一个整体使用,暂时解决了,但是还是没有从根本上解决问题。
上面的思路是错的,其实就是因为没有加双引号。加上双引号就好啦。

echo "字符$is_KK2"

2 cshell中带有变量的判断

if ([$file != ""]) then
    echo "yes"
endif

3 set value = hahahah

set value =hahahah      #少了空格,错误
set value = hahahah     #正常
上一篇下一篇

猜你喜欢

热点阅读