sudo: ./abc.sh: команда не найдена

Sparhawk избил меня, но вот мое собственное решение, которое я собирался запустить как задание cron

#!/bin/bash
timestamp1=$(cat du-prev.txt | cut -f 2)
timestamp2=$(date +"%s")
timediff=$(echo "${timestamp2}-${timestamp1}" | bc)

current=$(du -s | cut -f 1)
previous=$(cat du-prev.txt | cut -f 1)
spacediff=$(echo "${current}-${previous}" | bc)

speed=$(echo "scale=2; ((${spacediff}/${timediff})*8)/1024" | bc)

echo "timediff   : ${timediff} sec"
echo "spacediff  : ${spacediff} KB"
echo "speed      : ${speed} Mb/s"
echo -e "${current}\t${timestamp2}" > du-prev.txt
echo -e "${speed}\t${timestamp2}" >> logs/speedlog.txt
1
задан 25 January 2016 в 22:42

1 ответ

Ну, из того, что вы нам сказали, он должен работать отлично ... То есть, если раздел, который он хранит, поддерживает разрешения unix / posix style. Я сталкиваюсь с этой ошибкой все время, если я пытаюсь запустить скрипт из раздела vfat или ntfs. Учитывая, что он установлен в месте, называемом work, это на диске USB с жирным или ntfs отформатированным разделом? Если это так, вы должны префикс оболочки перед скриптом. Проверьте раздел, и это может быть проблемой. Переместите его в свой домашний каталог, и он может легко запускаться в файловой системе, которая поддерживает разрешения unix / posix.

Проверьте, так ли это:

mount |grep nisheet

Говорят, что vfat, fuseblock или ntfs? Если это так ...

Две опции:

Префикс оболочки перед скриптом для запуска:

bash abc.sh

Префикс оболочки перед скриптом для запуска:

Пример:

mv abc.sh ~/
cd ~
chmod +x abc.sh
./abc.sh
2
ответ дан 23 May 2018 в 14:04
  • 1
    Разделы vFAT и NTFS монтируются с разрешениями 777 по умолчанию, поэтому, если это проблема, они должны проверить их fstab, чтобы увидеть, как этот раздел монтируется. – kos 25 January 2016 в 19:55
  • 2
    @kos Если это всего лишь USB-накопитель, это, вероятно, не в его fstab. Судя по соглашению об именах, это была утилита userpace, которая смонтировала его, с некоторыми базовыми разрешениями. Следующая ссылка может помочь при ручной установке, чтобы получить нужную маску в файловой системе. Посмотрите на второй ответ: askubuntu.com/questions/23108/… – darkdragn 25 January 2016 в 20:11
  • 3
    Вы можете запустить файл сценария с установленного на Windows диска. Чтобы убедиться, что перед отправкой этой ссылки я взял диск из старого ноутбука Windows XP. Я подключил его с помощью адаптера USB / Hardrive. Я подключил его. Он автоматически открыл папку. Я создаю файл abc.sh, а затем запускаю его с помощью ./abc.sh. Это не повлияло на работу файловой системы ext4. Путь автомонтирования - /media/ljames/00A4C6CAA4C6C180/WINDOWS. Другими словами, вы можете запускать сценарии оболочки (и другие программы) из файловых систем Windows. – L. D. James 26 January 2016 в 18:43

Другие вопросы по тегам:

Похожие вопросы: