如何将变量复制到 shell 脚本中的另一个变量?
假设用户已经传入$1
,如何将其值复制到另一个变量中?
我想它看起来像这样......
cp $1 $2
echo "Copied value: $2"
请注意,cp
用于copy files and directories
. 要定义变量,您只需使用以下语法:
v=$1
$ cat a
echo "var v=$v"
v=$1
echo "var v=$v"
$ ./a 23 <---- we execute the script
var v= <---- the value is not set
var v=23 <---- the value is already set
val=$1
echo "Copied Value : $val"
您正在使用cp
which 用于复制文件。
只需使用
v=$1
并回应它:
echo "Copied Variable: $v"
我发现 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