我從我的MacBook Pro打開「終端」,並嘗試從書「猛砸指南入門」運行一些bash腳本:如何在macbook pro上運行bash腳本?
首先我檢查PATH環境設置和當前工作文件夾,其中包含一個腳本「SCRIPT1 .SH「:
unknown_b8-8d-1b-3d-0b-3d:myscript liuren$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
unknown_b8-8d-1b-3d-0b-3d:myscript liuren$ pwd
/Users/liuren/Documents/myscript
unknown_b8-8d-1b-3d-0b-3d:myscript liuren$ ls
script1.sh
然後我設置的路徑,包括當前工作文件夾,它似乎成功了:
unknown_b8-8d-1b-3d-0b-3d:myscript liuren$ export PATH="$PATH:/Users/liuren/Documents/myscript"
unknown_b8-8d-1b-3d-0b-3d:myscript liuren$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/liuren/Documents/myscript
,但是我不能讓 」script1.sh「 運行:
unknown_b8-8d-1b-3d-0b-3d:myscript liuren$ script1.sh
#: bad interpreter: No such file or directoryt1.sh: /bin/bash
unknown_b8-8d-1b-3d-0b-3d:myscript liuren$ ./script1.sh
#: bad interpreter: No such file or directory
劇本其實很簡單,從 「猛砸指南入門」:
#!/bin/bash
# This script clears the terminal, displays a greeting and gives information
# about currently connected users. The two example variables are set and displayed.
clear # clear terminal window
echo "The script starts now."
echo "Hi, $USER!" # dollar sign is used to get content of variable
echo
echo "I will now fetch you a list of connected users:"
echo
w # show who is logged on and
echo # what they are doing
echo "I'm setting two variables now."
COLOUR="black"
VALUE="9"
echo "This is a string: $COLOUR"
echo "And this is a number: $VALUE"
echo
echo "I'm giving you back your prompt now."
echo
,居然有 「/斌/慶典」:
unknown_b8-8d-1b-3d-0b-3d:myscript liuren$ cd /bin
unknown_b8-8d-1b-3d-0b-3d:bin liuren$ ls
[ df launchctl pwd tcsh
bash domainname link rcp test
cat echo ln rm unlink
chmod ed ls rmdir wait4path
cp expr mkdir sh zsh
csh hostname mv sleep
date kill pax stty
dd ksh ps sync
unknown_b8-8d-1b-3d-0b-3d:bin liuren$
使用其他方法運行它,它顯示沒有結果
unknown_b8-8d-1b-3d-0b-3d:myscript liuren$ source script1.sh
unknown_b8-8d-1b-3d-0b-3d:myscript liuren$ bash script1.sh
unknown_b8-8d-1b-3d-0b-3d:myscript liuren$ bash -x script1.sh
我想這是行不通的。我該如何解決這個問題?
ps。這個「unknown_b8-8d-1b-3d-0b-3d」是什麼,是否有可能將它改爲更有意義的東西?
看起來你可能在shebang行有一個奇怪的控制字符。當你運行時你會得到什麼:sed 1q script1.sh | xxd – 2012-02-04 05:44:16
這可能與實際答案無關,但不應在PATH變量中加引號。你應該像這樣設置它:export PATH = $ PATH:/ Users/liuren/Documents/myscript – 2012-02-04 05:47:19
它沒有引用它的作品,但似乎用引號它也可以使它? – athos 2012-02-04 06:08:48