2015-07-02 40 views
-1

我有一個目錄路徑,我需要從中提取文件名,以便我可以在shell腳本中進一步使用。在shell中迴應基本名稱

#!/bin/sh 
dir=/var/tmp/file1 
fname= basename $dir 
echo $fname 
echo "The script executes:" $fname 
echo $fname 

這裏fname只打印一次。在所有其他情況下,它都是空白的。

我哪裏錯了?

+3

'FNAME =基名$ dir'應該是'FNAME = $(基名

使用「$目錄」)'。也許你應該閱讀教程或手冊? – Biffen

回答

0

這是以下工作。

#!/bin/sh 
dir=/var/tmp/file1 
fname=`basename $dir` 
echo $fname 
echo "The script executes:" $fname 
echo $fname 

輸出 $:./tt.sh

文件1

的腳本執行:文件1

文件1

+0

我以這種方式使用它,但現在在這種情況下,file1正在執行。 ( – user2403449

+0

@user2403449)如果你真的這樣做了,*注意''''''周圍的空格會造成巨大的差異 – Biffen

+1

@我的想法'$()'比反引號更受歡迎。儘管在這種情況下不是必須的,但應該引用變量作爲一個規則。 – Biffen

-1

一些積分上添加頂部以上的答案。

如果妳想要的只是文件名沒有任何擴展指令低於

基名filename.type .TYPE