2016-10-20 8 views
0

bashスクリプトでフォルダ名をどのように変更できますか?bashスクリプトのフォルダ名を確認してください

"test"という名前のフォルダにあります。今私は本当に "テキスト"であることを確認したい。私は次のことを試してみました

:そのtestfolderが見つからない

cd tmp 
mkdir testfolder 
cd testfolder 
if [["${PWD##*/}"]] == "testfolder" 
then echo "ok" 
fi 
done 

しかし、常にエラーを取得し、それをコマンドとして実行しようとした場合。あなたは[[ ... ]]に全体の比較を含める必要が

おかげ

+0

は、常に正確なを記載してくださいあなたが質問に表示されるエラーメッセージ –

答えて

1

実際のチェック条件が

if [ "${PWD##*/}" == "testfolder" ]; 

それとも、行われた比較の戻りコードでのようなものtestオペレータ[[]]を使用することができますされている必要があります: -

[[ "${PWD##*/}" == "testfolder" ]] && echo "Match" 
+1

あなたの仕事に感謝します – oxidworks

+1

あなたは待たなければなりませんいつもそうとは限らない:-) – oxidworks

+0

nit: '['を使うと、 '='を使うべきです。これは '$ {PWD ## * /}" = testfolder]; '最近のシェルのビルドされた' test'の実装は、最近のDarwin(15.6)の '=='ではなく '/ bin/[' 0)はエラーをスローします。 –

1

if [[ ${PWD##*/} == testfolder ]] 

はまた[[周りのスペースはオプションではないことに注意してください。 [[ ... ]]には二重引用符は不要ですが、[ ... ]に切り替えると必要です。

+0

ありがとうございます私はこの10回前に試したと思うが、今それは働いていると思う:-) – oxidworks