這裏的第一篇文章,和使用終端相當新手。任何失敗提前抱歉。列出目錄中的文件作爲菜單選項,然後運行該選定的腳本
我想列出任何.sh文件在一個目錄中,所以當我選擇文件時,它運行該文件。這些文件只是導出環境變量的.sh文件,所以我可以加載一個特定的工作即時通訊工作。
事情是,如果我複製腳本並粘貼到終端並運行,它的工作原理。
但是,如果我嘗試通過終端運行腳本。它可以工作,但不會設置環境變量。這是腳本。
cd ~/nuke/pipeline/executables/
echo "-- JOB LIST --"
# set the prompt used by select, replacing "#?"
PS3="Use number to select a file or 'stop' to cancel: "
# allow the user to choose a file
select filename in *.sh
do
# leave the loop if the user says 'stop'
if [[ "$REPLY" == stop ]]; then break; fi
# complain if no file was selected, and loop to ask again
if [[ "$filename" == "" ]]
then
echo "'$REPLY' is not a valid number"
continue
fi
# now we can use the selected file, trying to get it to run the shell script
. $filename
echo "Job Environment is $filename"
# it'll ask for another unless we leave the loop
break
done
#And here's whats in one of the .sh files
export DIR=/Users/darren/nuke/pipeline
export JOB=RnD
export SHOT=base
你是如何調用你的腳本?除非您將其作爲「源腳本」或「'調用。腳本「,它將運行在一個子shell和'的效果。 $ filename'丟失。 – codeforester
不應該通過。 $文件名? – durwood