まず、Linuxシェルでできるこれらの変換の名前は何ですか?シェルスクリプト変数内で{old、new} nameを使用するにはどうすればいいですか?
$ echo {old,new}name
oldname newname
私が通り、変数に続い入れてみました:
$ var={old,new}name
$ echo $var
{old,new}name
しかし、私たちが見ることができるよう、彼らには、作業を停止。だから私はそれを書くことができるよう
mv {old,new}name/"file 1.txt"
mv {old,new}name/"file 2.txt"
mv {old,new}name/"file 3.txt"
mv {old,new}name/"file 4.txt"
:また
var={old,new}
mv '$var'name/"file 1.txt"
mv '$var'name/"file 2.txt"
mv '$var'name/"file 3.txt"
mv '$var'name/"file 4.txt"
、私はトラブルがシェル変数とname
を一緒に入れていた私は簡単に許すとして一括操作でそれらを変更するには、変数にそれらを必要すなわち、$varname
を補完する。 $var
という名前(つまり、'$var'name
)を一重引用符で囲むことにしました。思考、それをするのが最善の方法ですか?
です。パラメータ置換後の唯一の拡張は、文字列分割とグローブです。 *値が展開される前にブレース拡張が行われます。妥当なセキュリティ関連の理由がこれに当てはまります(任意のデータが構文解析された場合、信頼できない名前のファイルを処理するbashでスクリプトを書くことはできません)。 –
...だから、短い答えは "あなたは*良い理由でそれをすることはできません*、回避策を見つけようとすると(' eval'のように)、細心の注意を払わなければセキュリティを脅かすでしょう。 –