[英]Command found at the command line but not in script
我正在嘗試創建一個新的 在Mac上使用腳本的android項目。 為此,我遵循以下步驟:
.bash_profile
添加工具和平台工具的PATH
android
命令在外殼中是否可用。 這是我寫的腳本:
NAME=$1
PATH=$2
PACKAGE=$3
echo $1
echo $2
echo $3
function create_new_android_project()
{
android create project -n "$NAME" -t 7 -p "$PATH" -k "$PACKAGE" -a MainActivity
}
create_new_android_project
echo
echo "******** Complete!!!"
android
命令在外殼中運行。 但是當我使用sh script.sh project_name project_path package_name運行腳本時,它放棄了一個錯誤,說android: command not found
。
PATH
變量對外殼具有特殊含義。 如果您沒有為程序提供完整的路徑,則shell希望它包含用冒號分隔的目錄列表,可以在其中查找程序。
要解決您的問題,請在程序中使用除PATH
之外的其他名稱。
作為一般建議,我邀請您使用更嚴格的規則引用參數並避免使用echo
命令:
幾乎沒有理由不要在雙引號之間出現變量名。 因此,除非要實現特殊功能,否則應始終使用雙引號來控制變量擴展。
優先選擇printf
不是echo
因為它更易於使用,更可靠,更便攜(也是明顯的贏家)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.