3

シェルスクリプトで変数を別の変数にコピーするにはどうすればよいですか?

ユーザーが を渡したとすると、$1その値を別の変数にコピーするにはどうすればよいでしょうか?

だいたいこんな感じになると思います...

cp $1 $2

echo "Copied value: $2"
4

5 に答える 5

1

まずcp、ファイルとディレクトリのみをコピーするためのものです(manページに記載されているように)

次に、引数変数 ($0..$1..$n) に代入することはできません。これらは読み取り専用です。

代わりにこれを行うことができます:

input2=$1

$1の値を新しい変数にコピーします。$input2

于 2013-07-16T12:05:40.290 に答える
0
val=$1  
echo "Copied Value : $val"
于 2013-07-16T12:06:06.927 に答える
0

cpファイルのコピーに使用しています。

使うだけ

v=$1

そしてそれをエコーし​​ます:

echo "Copied Variable: $v"
于 2013-07-16T12:08:50.793 に答える
0

set -- は、位置パラメータを設定するための非常に便利なコマンドであることがわかりました。たとえば、あなたが与えた例では、よく答えられています:

cp file1 file2    

「file1」を「file2」にコピーします。いくつかのファイルを扱うときは、代わりに次のようにします。

set -- file1 file2
cp $1 $2

変数の名前を逆にしたい場合:

set -- $2 $1        # puts the current "$2" value in "$1", and vice versa, then
cp $1 $2            # copies what was   file2   contents back to file1.

すでに見た「名前付き」変数を使用せずにこれを行います。私のより一般的な使い方は次のようなものです:

set -- ${1%.txt}    # strips a ".txt" suffix 
set -- $1 $1.out $1.err   # sets 2nd to <whatever>.out and 3rd to <whatever>.err, so
cmd $1.txt > $2 2>$3      # puts stdout in  ...out  and stderr in ...err

v

于 2013-07-16T19:42:05.767 に答える