我需要一种方法将文件名保存到变量中,这样在删除该文件后,我可以创建一个与原始文件同名的新文件。我怎样才能做到这一点?
例如,我接受一个文件并将其存储为var1,另一个文件存储为var2,使用
file=$var1
file=$var2
稍后在我的代码中,我需要删除var2并创建一个与原始var2同名的var1链接。命令:
rm var2
ln var1 var2
创建错误消息 我想我需要创建一个只包含文件var2名称的临时变量,但我不知道该怎么做。有任何想法吗?谢谢!
答案 0 :(得分:3)
我认为你只需要一个“$”符号:
# Set a variable
myvar=moose
# Get the contents of a variable
echo $myvar # Prints "moose"
在你的情况下:
var1=myfirstfile
var2=mysecondfile
rm $var2
ln $var1 $var2
答案 1 :(得分:1)
你使用的是哪个shell?什么操作系统?
Linux和BASH将是:
#!/bin/bash
# Set variable $var1, it will contain a string - 'file':
var1='file'
# Set variable $var2, it will contain a string - 'another_file':
var2='another_file'
# Run 'rm' command with an argument - a variable $var1
# So it's like running a command "rm file"
rm $var1
# Run 'ln' command with $var1 and $var2 as arguments
# So it's like running a command "ln file another_file"
ln $var1 $var2
但是在Mac OS X ln
中有不同的语法,您必须在ln
中切换参数:
ln $var2 $var1
修改:此外,您的问题可能是您使用包含空格的文件路径,因此bash显示"no such file or directory"
错误。
由于rm
的语法,它无法找到该文件。例如:
var1='long named file'
rm $var1
此脚本会运行命令"rm long named file"
,而命令long
会删除三个文件 - named
,file
和rm "$var1"
ln "$var1" "$var2"
。
然后那会为你做的事情:
{{1}}