我有一個目錄路徑,我需要從中提取文件名,以便我可以在shell腳本中進一步使用。在shell中迴應基本名稱
#!/bin/sh
dir=/var/tmp/file1
fname= basename $dir
echo $fname
echo "The script executes:" $fname
echo $fname
這裏fname只打印一次。在所有其他情況下,它都是空白的。
我哪裏錯了?
我有一個目錄路徑,我需要從中提取文件名,以便我可以在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`
echo $fname
echo "The script executes:" $fname
echo $fname
輸出 $:./tt.sh
文件1
的腳本執行:文件1
文件1
我以這種方式使用它,但現在在這種情況下,file1正在執行。 ( – user2403449
@user2403449)如果你真的這樣做了,*注意''''''周圍的空格會造成巨大的差異 – Biffen
@我的想法'$()'比反引號更受歡迎。儘管在這種情況下不是必須的,但應該引用變量作爲一個規則。 – Biffen
一些積分上添加頂部以上的答案。
如果妳想要的只是文件名沒有任何擴展指令低於
基名filename.type .TYPE
'FNAME =基名$ dir'應該是'FNAME = $(基名
使用「$目錄」)'。也許你應該閱讀教程或手冊? – Biffen