【问题标题】:How to execute Terminal commands from a shell script? (MacOS 10.12)如何从 shell 脚本执行终端命令? (MacOS 10.12)
【发布时间】:2017-01-15 19:52:15
【问题描述】:

我正在编写一段 shell 脚本代码,以便在我的 Mac 上自动执行一组终端任务。该程序在 Mac 终端中执行,但是当任何 if 语句为真时,if 语句中的嵌套命令不会执行。有什么建议吗?

#!/bin/bash

FINDER="1"
DOCK="2"
CAFF="3"

echo Select an option:
echo 1. killall Finder
echo 2. killall Dock
echo 3. caffeinate

echo Enter you choice:
read CHOICE

if [ "$CHOICE"="$FINDER" ]; then
    killall Finder
elif [ "$CHOICE"="$DOCK" ]; then
    killall Dock
elif [ "$CHOICE"="$CAFF" ]; then
    caffeinate
fi

exit

【问题讨论】:

    标签: macos shell terminal scripting command


    【解决方案1】:

    感谢这个论坛的帮助,我能够解决这个问题。这是现在可以工作的代码块:

    #!/bin/bash
    
    CHOICE=0
    FINDER=1
    DOCK=2
    CAFF=3
    
    echo Select an option:
    echo 1. killall Finder
    echo 2. killall Dock
    echo 3. caffeinate
    
    echo -n Enter your choice:
    read CHOICE
    
    echo You chose: $CHOICE
    
    if [ $CHOICE = $FINDER ]; then
        echo Executing killall Finder…
        killall Finder
    elif [ $CHOICE = $DOCK ]; then
        echo Executing killall Dock…    
        killall Dock
    elif [ $CHOICE = $CAFF ]; then
        echo Executing caffeinate…
        caffeinate
    fi
    
    exit
    

    【讨论】:

      【解决方案2】:

      条件中等号周围缺少空格。

      #!/bin/bash
      
      FINDER="1"
      DOCK="2"
      CAFF="3"
      
      echo Select an option:
      echo 1. killall Finder
      echo 2. killall Dock
      echo 3. caffeinate
      
      echo Enter you choice:
      read CHOICE
      
      if [ "$CHOICE" = "$FINDER" ]; then
          killall Finder
      elif [ "$CHOICE" = "$DOCK" ]; then
          killall Dock
      elif [ "$CHOICE" = "$CAFF" ]; then
          caffeinate
      fi
      

      【讨论】:

      • 好的,我把等号隔开,但现在程序只执行 if 语句的第一个参数,不管我输入到控制台的数字是多少。
      • 尝试在shebang下添加set -x,执行时会写出执行的命令,帮助调试脚本。使用终端运行它。祝你好运!
      猜你喜欢
      • 1970-01-01
      • 2016-01-09
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 2011-04-13
      相关资源
      最近更新 更多