Bash Script ничего не выводит - PullRequest
       10

Bash Script ничего не выводит

0 голосов
/ 10 ноября 2019

Мой скрипт просто работает без вывода. Если я не ввожу аргумент, он выполняет проверку ошибок правильно, но если я ввожу соответствующий файл для аргумента, он просто запускается без вывода и ошибок. Цель сценария - проверить, является ли файл исполняемым или нет, и спросить пользователя, хотят ли они изменить разрешения, если они не установлены.

Вот код

 #!/bin/bash

#making sure and argument is entered

if [ $# -ne 1 ]
then
  echo "Invalid arguments. Must pass 1 argument"
  echo "Usage: $0 <filename>"
  exit 1
fi

#filename argument variable
fname=$1

#storing file to verify its a executable
is_executable=`file $fname`

#getting permissions
lsOut=`ls -l $fname|awk '{print $1}'`

ownerPerm=`echo ${lsOut:1:3}`
groupPerm=`echo ${lsOut:4:3}`
otherPerm=`echo ${lsOut:7:3}`

# checking if the file is a executable
if [[ "$is_executable" =~ .*"executable".* ]]
then
  if [[ $ownerPerm != *"x"* ]]
  then
    choice=""
    echo "Should the execute bit be set for Owner(yes/no)? "
    read choice
    if [ $choice == "yes" ]
    then
      chmod u+x $fname
    fi
  fi

  if [[ $groupPerm != *"x"* ]]
  then
    choice=""
    echo "Should the execute bit be set for Group(yes/no)? "
    read choice
    if [ $choice == "yes" ]
    then
      chmod g+x $fname
    fi
  fi

  if [[ $otherPerm != *"x"* ]]
  then
    choice=""
    echo "Should the execute bit be set for Other(yes/no)? "
    read choice
    if [ $choice == "yes" ]
    then
      chmod o+x $fname
    fi
  fi
else
  if [[ $ownerPerm =~ .*"x".* ]]
  then
    chmod u-x $fname
    echo "Execute permission removed from owner for the file $fname"
  fi

  if [[ $groupPerm =~ .*"x".* ]]
  then
    chmod g-x $fname
    echo "Execute permission removed from group for the file $fname"
  fi
  if [[ $otherPerm =~ .*"x".* ]]
  then
    chmod o-x $fname
    echo "Execute permission removed from other for the file $fname"
  fi
fi

1 Ответ

0 голосов
/ 11 ноября 2019

Я понял, что это неправильно. Я, как идиот, неправильно настроил права доступа к файлам для тестов, которые я пытался запустить. Команда bash -x позволила мне понять это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...