我试图在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
答案 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