0

csh スクリプトで 2 つの変数を連結しようとしています

ここにスクリプトの一部があります

#!/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」などの値にする必要があります。

Lower関数を使用してlowerisrc変数が文字列として認識されていないようです

次の結果を出力として取得するにはどうすればよいですか?

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:][:lower:]ファイル マッチング パターンとしてシェルによって展開される可能性があります。

更新:そして今、質問のコードを変更しました。改訂されたコードを試してみたところ(の値を設定する行を追加して$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 に答える