bashの変数にURLを保存します。実際のファイルパスとは関係ありませんが、ファイル名が長すぎますというエラーが発生し続けます。
bashにファイル名検索を無視し、長いURL文字列を変数に保存するように指示するにはどうすればよいですか?
ファイル名を使用しません。見かけに関係ないように見えるエラーが発生する理由を説明して案内してくれる人はいますか?
#!/bin/bash
video=""
$video=$(youtube-dl -g -f bestvideo https://youtubeurl)
echo $video
$bash script.sh
エラー:ファイル名が長すぎます。
編集:申し訳ありません。コマンドの前に$()を使用しました。 stackexchangeエディタにタイプミスがありました。上記で修正しました。 echo "$video" を試してみてください。それでも同じエラーが発生します。 Linux用のWindowsサブシステムでUbuntuを使用しています。
答え1
スクリプトにはいくつかの問題があります。
$video=youtube-dl -g -f bestvideo https://youtubeurl
これは有効な構文ではありません。変数の割り当ては次から始めることはできません$
(これは他の言語で一般的です)。また、ぜひ使ってみたいと思いますね。コマンドの置き換えそこ:
video=$(youtube-dl -g -f bestvideo https://youtubeurl)
また、echo時に$video
引用する必要があります(変数を使用するときに引用する必要があるように)。ほぼすべての他のシナリオで):
echo "$video"
video
最後に、スクリプトの先頭に空のパラメータを設定する必要はありません。しかし、これは問題を引き起こしません。
スクリプトを試してください。
#!/bin/bash
video=$(youtube-dl -g -f bestvideo https://youtubeurl)
echo "$video"