bash の変数内に URL を保存しています。実際のファイル パスとは何の関係もありませんが、「ファイル名が長すぎます」というエラーが繰り返し表示されます。
bash にファイル名の検索を無視して、長い URL 文字列を変数に格納するように指示するにはどうすればよいですか?
ファイル名を使用していません。関係ないと思われるエラーが発生する理由を説明して、教えていただけませんか?
#!/bin/bash
video=""
$video=$(youtube-dl -g -f bestvideo https://youtubeurl)
echo $video
$ Bash スクリプト.sh
エラー: ファイル名が長すぎます
編集: 申し訳ありませんが、コマンドの前に $( ) を使用しました。ここでは StackExchange エディターで間違って入力しました。上記で修正しました。echo "$video" を使用してみました。それでも同じエラーが発生します。私は Windows Subsystem for Linux で 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"