रास्पबेरी पाई हेडलेस, मेरी अगर [[file1 -nt फ़ाइल 2]] जो यह सोचती है कि दो फाइलों की समान तिथि है


0

तो मेरे पास एक प्लेयर स्क्रिप्ट "player.sh" और एक updater स्क्रिप्ट "updater.sh" है।

player.sh किसी भी एमपी 3 फ़ाइल को / होम / फ़ाइलपैथ / वाइल्ड कार्ड * .mp3 का उपयोग करके निभाता है, यह अपेक्षा के अनुरूप काम करता है।

मैं चाहता हूँ कि updater.sh 15 सेकंड के लिए सो जाए, तो usb ड्राइव "sda1" को / media / pi पर माउंट करें, फिर जांचें कि क्या * .mp3 in / media / pi घर में * .mp3 से नया है। /फ़ाइल पथ/

यदि फ़ाइल नया है, तो यह एमपी 3 प्लेबैक को पिल करता है, सभी * .mp3 को / home / filepath / से शुद्ध करने के लिए RM का उपयोग करता है, नए * .mp3 को / home / filepath / में कॉपी करता है, फिर खिलाड़ी को शुरू करता है। नई फ़ाइल चलाएँ।

हालाँकि, यह ऐसा नहीं करता है ...।

#!/bin/bash
while [ 1 ] ; do
sleep 15
sudo mount /dev/sda1 /media/pi
if [[ /media/pi/*.mp3 -nt /home/filepath/*.mp3 ]] ; then sudo pkill mpg123 & sudo rm /home/filepath/* & cp /media/pi/*.mp3 /home/filepath/ & sh /home/filepath/player.sh & echo "updated"
else echo "not updated"
fi
sudo amount -l /media/pi
done

मुझे सिर्फ "अपडेटेड नहीं" से भरा एक टर्मिनल मिलता है।

कोई फर्क नहीं पड़ता कि मैं क्या करता हूं स्क्रिप्ट को लगता है कि फाइलों में एक ही संशोधित तिथि है, लेकिन मैंने "स्टेट" का उपयोग करके फाइलों की जांच की है और संशोधित तिथियां कई घंटे अलग हैं।

कोई विचार?

धन्यवाद!

जवाबों:


1

यदि आप ऐसा कुछ कहते हैं [[ /dir1/* -nt /dir2/* ]], तो शेल विस्तार करता है कि जैसा दिखता है

[[ /dir1/f1 /dir1/f3  -nt /dir2/f2 /dir2/f3  ]]

यदि आपके पास प्रत्येक निर्देशिका में ठीक एक फ़ाइल है, तो यह अनिश्चित रूप से काम करना चाहिए । अन्यथा, कमांड बकवास है, और विफल हो जाएगी।

आपको -ntएक बार में केवल दो फ़ाइलों पर उपयोग करने की आवश्यकता है । आप कुछ ऐसा करना चाह सकते हैं

for b in /home/filepath/*.mp3
do
    b_base="${b##*/}"
    if [[ /media/pi/"b_base" -nt "$b" ]] ; then (do something) 
            

इसके अलावा, आप उपयोग कर रहे हैं &जहाँ आप का उपयोग किया जाना चाहिए &&


धन्यवाद स्कॉट! मैं अब भी इस तरह से कोडिंग करने के लिए बहुत नया हूं, अगर आपके पास समय हो सकता है तो आप "बी में ...." के लिए दूसरे समाधान में क्या टूट रहे हैं। "
बेदर्दी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.