私はインターネット全体でこれに似た質問を見てきましたが、私が遭遇しているものとまったく同じものを見つけることができませんでした。これが重複している場合は申し訳ありませんが、私はこの質問をする前に約1時間答えを見つけようとしています...
#!/bin/bash
echo "Enter path:"
read path
echo "Enter title:"
read title
mkdir -pv "${path}/${title}"
イン/アウト:
Enter path:
~/test
Enter title:
testing
mkdir: cannot create directory '/testing': Permission denied
一方、私が実行した場合
mkdir -pv ~/test/testing
端末からでもスクリプトにハードコードされていても、問題なく動作します。
また、/ bin / mkdirの使用、-pの削除、mkdir呼び出しの前後の{}または ""の削除などを試しましたが、機能しません。また、スクリプトにはすべての権限(-rwxrwxrwx)があります。
どんな助けでも大歓迎です。ありがとう!
スクリプトでは、問題は~/test
、~
が展開されていないことです。したがって、もう一度確認すると~
、スクリプトを実行した現在のディレクトリにディレクトリが見つかります。
以下~
を使用して展開する例を次に示しますeval
。
$ cat dirtest.sh
#!/bin/bash
echo "Enter path: "
read my_dir
eval my_dir="$my_dir"
echo "Enter title: "
read title
mkdir -pv "${my_dir}/$title"
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加