如何在csh脚本中连接变量

时间:2013-02-28 19:25:47

标签: csh

我试图在csh脚本中连接两个变量

以下是脚本的一部分

#!/bin/csh -f

set encname = _11111k_1920x1080_x264_5200_quicktime_128.mp4

set lowerisrc = `echo $isrc | tr "[:upper:]" "[:lower:]"`

echo "$lowerisrc$encname"

输出:

_11111k_1920x1080_x264_5200_quicktime_128.mp4

lowerisrc变量应该是一个值,例如“ggttgttgg”

好像使用较低的函数

将lowerisrc变量识别为字符串

如何将以下结果作为输出?

ggttgttgg_11111k_1920x1080_x264_5200_quicktime_128.mp4

1 个答案:

答案 0 :(得分:1)

双引号不会像那样嵌套。将设置lowerisrc的行更改为:

set lowerisrc = "`echo $isrc | tr '[:upper:]' '[:lower:]'`"

使用您当前的代码,该行:

set lowerisrc = "`echo $isrc | tr "[:upper:]" "[:lower:]"`"

包含3个双引号字符串:

"`echo $isrc | tr "
" "
"`"

并且[:upper:][:lower:]可能会被shell扩展为文件匹配模式。

更新现在您已经更改了问题中的代码。我刚刚尝试了修改后的代码(添加了一行来设置$isrc的值),并且它正常工作,这使得这个问题毫无意义。

这是一个适合我的完整脚本:

#!/bin/csh -f

set isrc = GGttGttGG
set encname = _11111k_1920x1080_x264_5200_quicktime_128.mp4
set lowerisrc = "`echo $isrc | tr '[:upper:]' '[:lower:]'`"
echo "$lowerisrc$encname"

输出结果为:

ggttgttgg_11111k_1920x1080_x264_5200_quicktime_128.mp4