在shell中回显basename
我有一个目录的路径,需要从中提取文件名,以便在shell脚本中进一步使用在shell中回显basename,shell,Shell,我有一个目录的路径,需要从中提取文件名,以便在shell脚本中进一步使用 #!/bin/sh dir=/var/tmp/file1 fname= basename $dir echo $fname echo "The script executes:" $fname echo $fname 在这里,fname只打印一次。在所有其他情况下,它都是空白的 我哪里出了问题?下面的操作正常 #!/bin/sh dir=/var/tmp/file1 fname=`basename $dir` ech
#!/bin/sh
dir=/var/tmp/file1
fname= basename $dir
echo $fname
echo "The script executes:" $fname
echo $fname
在这里,fname只打印一次。在所有其他情况下,它都是空白的
我哪里出了问题?下面的操作正常
#!/bin/sh
dir=/var/tmp/file1
fname=`basename $dir`
echo $fname
echo "The script executes:" $fname
echo $fname
输出$:./tt.sh
文件1
脚本执行:file1
文件1
在以上答案的基础上,再加上几点 如果你只想要文件名而不需要任何扩展名 使用下面的命令
basename filename.type.type
fname=basename$dir
应该是fname=$(basename“$dir”)
。也许您应该阅读教程或手册?我是这样使用的,但现在在本例中,将执行file1:(@user2403449如果您完全是这样做的话就不会了。请注意,=
s周围的空格会产生巨大的差异。@my Thinks$()
现在比backticks更受欢迎。虽然在这种情况下不是绝对必要的,但变量应该作为规则引用。