#!/bin/bash
apt-get update
apt-get install git -y
以上是我*.sh的程式碼
user@pc:~/$ sudo bash ./test.sh
E: The update command takes no arguments
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package
sh裡的程式碼在terminal上直接跑都可以正常運作,請問為什麼用script就不正常呢?
(Ubuntu18.04)
我也很納悶為什麼它沒說什麼有問題,git我已經裝過了,這程式碼只是小測試,所以有沒有apt-get update
都無所謂(雖然upate
看起來也是有問題,不知道它到底要什麼arguments)。
我在terminal直接跑apt-get install git
是這樣的,應該不會沒辦法locate才對。
user@pc:~/$ sudo apt-get install git -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
git is already the newest version (1:2.17.1-1ubuntu0.7).
0 upgraded, 0 newly installed, 0 to remove and 13 not upgraded.
不是 apt-get install git
時出問題阿
你看起來在 apt-get update
就有問題了
喔喔 看錯了
sh內改成這樣去跑
#!/bin/bash
apt-get install git -y
回應是
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package
我知道apt-get update
有問題,但apt-get install git
也有問題QQ
那在commandline 先下 sudo apt-get update
再跑呢?
感覺你的 sources.list
怪怪的
有很大機率不只 git
裝不起來
另外想問一下
你這是 WSL 嗎
我的環境是 WSL1 + ubuntu 18.04
不過我剛開了一台 ec2 instance 跑
也是正常沒問題
那在commandline 先下 apt-get update
再跑呢?
還是一樣...
user@pc:~/$ sudo apt-get update
Hit:1 http://tw.archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://tw.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:3 http://dl.google.com/linux/chrome/deb stable InRelease
Hit:4 http://tw.archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:5 http://packages.microsoft.com/repos/vscode stable InRelease
Get:6 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Hit:7 http://ppa.launchpad.net/ondrej/php/ubuntu bionic InRelease
Hit:8 http://apt.postgresql.org/pub/repos/apt bionic-pgdg InRelease
Hit:9 http://ppa.launchpad.net/rvm/smplayer/ubuntu bionic InRelease
Hit:10 http://ppa.launchpad.net/wireshark-dev/stable/ubuntu bionic InRelease
Fetched 88.7 kB in 2s (54.0 kB/s)
Reading package lists... Done
user@pc:~/$ sudo bash ./test.sh
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package
這不是WSL,是電腦進來就是Ubuntu了
也有可能是因為你使用 editor
造成的問題
不過都在 linux 下編輯的話
應該是不會有這問題才對
不過還是可以試試看
例如他把換行之類的也讀進去
所以他執行時才會說
E: The update command takes no arguments
因為他可能讀到的是
apt-get update \r
之類的
我猜的
我原先使用vim做編輯,試改用gedit還是一樣,這問題好煩啊XD
訊息是apt-get update不需要argument,不是說你少給了argument。
在console隨便打apt-get update xxx就會得到同一個訊息,所以顯然你update後面有看不到的字元。
的確 在sh中改成
#!/bin/bash
apt-get update &&
apt-get install git -y
apt-get update
就可以跑了,但會說'\r': command not found
,所以它是有讀到\r
的
請問這有解嗎,還是就給它讀到也沒差?在linux下的換行不是\n
而已嗎,為什麼還會有\r
(使用vim editor)