iTunes 인터넷 라디오에서 현재 흐르는 노래를 텍스트 파일에 저장하는 쉘 스크립트
9429 단어 ShellScriptAppleScriptBash
여기가 이상하다는 것이 있으면 꼭 들려주세요.
songclip.sh
#!/bin/bash
set -eu
# コマンド名を取得
declare -r COMMAND_NAME=$(basename "$0")
# ストリーム情報を保存するファイル
declare -r SONG_CLIP_FILE="$HOME/Dropbox/document/songclip.txt"
# iTunes からストリーム情報を取得
declare -r SONG_INFO="$(osascript -e '
if application "iTunes" is running
tell application "iTunes" to current stream title
end if
')"
# コマンドの説明
usage() {
cat << EOD
Usage: $COMMAND_NAME <subcommand>
now Display a current stream title
list Display the clipped song list
delete Delete the song info (only one line)
purge Purge the contents of existing file (delete all line)
help Display the Usage
EOD
}
# "missing value" か "" ならばエラーメッセージを表示して終了
check_stream() {
if [ "$SONG_INFO" = "missing value" -o -z "$SONG_INFO" ]; then
echo "Error: Can't retrieve the cunrent stream title."
exit 1
fi
}
# 引数の指定がない場合
if [ "$#" -eq 0 ]; then
# 現在流れているストリーム情報をファイルに保存
check_stream
if grep -qs "$SONG_INFO" "$SONG_CLIP_FILE"; then
echo "Now Playing the stream title is already exists."
exit 1
fi
echo "$SONG_INFO" >> "$SONG_CLIP_FILE"
echo "Clipped: $SONG_INFO"
exit 0
fi
# 第一引数によって処理を分ける
case "$1" in
"now")
# 現在流れているストリーム情報を表示
check_stream
echo "Now Playing: $SONG_INFO"
;;
"list")
# 保存した情報を表示
if [ ! -e "$SONG_CLIP_FILE" ]; then
echo "$SONG_CLIP_FILE: No such file."
exit 1
fi
cat -n "$SONG_CLIP_FILE"
;;
"delete")
# 入力された番号の行を削除
echo -n "Please enter the line number: "
read line_number
expr "$line_number" + 1 >/dev/null 2>&1 | true
if [ "${PIPESTATUS[0]}" -lt 2 ]; then
file_rows=$(awk 'END { print NR }' "$SONG_CLIP_FILE")
if [ "$line_number" -ne 0 -a "$line_number" -le "$file_rows" ]; then
sed -i "" -e "${line_number}d" "$SONG_CLIP_FILE"
echo "Deleted a line."
exit 0
fi
fi
echo "There is no such line. Please try again."
exit 1
;;
"purge")
# ファイルを空にする
echo -n "Are you sure you want to empty the file? (yes|no): "
read purge_answer
if [ "$purge_answer" = "yes" ]; then
echo -n > "$SONG_CLIP_FILE"
echo -n "." && sleep 1 && echo -n "." && sleep 1 && echo -n ". "
echo "Purged the contents of the file."
fi
;;
*)
# Usage を表示
usage
exit 1
esac
exit 0
위는 다소 오래되었지만 새로운 것을 GitHub에 올렸습니다.
htps : // 기주 b. 코 m / 그럼 m 반 d / 그런 gc ぃ p
Reference
이 문제에 관하여(iTunes 인터넷 라디오에서 현재 흐르는 노래를 텍스트 파일에 저장하는 쉘 스크립트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/livejam_db/items/7199097217581e7fb4f3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)