0

我正在尝试在 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 变量没有被识别为使用 lower 函数的字符串

如何获得以下结果作为输出?

ggttgttgg_11111k_1920x1080_x264_5200_quicktime_128.mp4
4

1 回答 1

1

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

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

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

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

包含 3 个双引号字符串:

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

并且[:upper:]and[: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
于 2013-02-28T19:41:38.833 回答