簡體   English   中英

“: 找不到相關命令”

[英]“: Command not found”

在獲取您的一個env文件時出現一些問題(一系列變量導出)

例如:

...
export MY_ROOT=/Soft/dev/blah/blah
export MY_BIN=${MY_ROOT}/bin
...

結果是

$. my_env.sh
$echo $MY_BIN
/bint/dev/blah/blah

=>“/ bin”似乎覆蓋了變量的開頭而不是后綴。

任何想法?

順便說一下,每次我們獲取此文件時,都會報告錯誤消息:

": Command not found"

這很奇怪..即使我們評論其整個內容,也會出現此消息。

開始時調用的shell似乎很好#!/bin/sh ,或#!/bin/bash

控制角色怎么樣? 如何在linux上屏蔽它們?

“:找不到命令”是我在MS Windows系統(錯誤)處理UNIX / Linux shell腳本時看到的錯誤。 例如,如果使用WebCVS檢出,使用記事本或寫字板進行修改,然后重新提交。

(它抱怨它無法找到[Ctrl-M]可執行文件---這是一個完全有效的,雖然非常不方便,有點可疑的UNIX / Linux文件名)。

通過GNU cat -Aod -xhexdump命令運行該文件以查看這些(並驗證我的診斷...或通過tr -d運行它,並為您的系統執行適當的引用和shell“逐字”處理。示例tr -d '[Ctrl-V],[Ctrl-M]'在典型Linux系統上的Bash下。

根據您的tr版本,您可以使用: tr -d '\\r'tr -d \\015 (015是CR的八進制,“回車”或^ M ---以前使用的MS-DOS CR / LF配對作為線路終端,這只是MS-DOS在互操作性方面在被遺棄的深淵中腐爛的眾多原因之一。單個字符的線路終結器不會給任何其他人帶來真正的問題......但是PAIRS會導致當主流計算歷史中的其他所有內容都使用單個字符時,真正的轉換問題)。

哦,是的, vim有一個方便的set ff (又名set fileformat選項,它可以處理任何vim副本的UNIX,MacOS和MS-DOS行終止約定,無論你在哪個平台上。我似乎記得vim默認用於檢測文件正在使用哪種類型的行終止並保持不變(當然,默認為平台的本機用於任何新文件)。

這將修復文件中的行結尾:

dos2unix my_env.sh

在文件中不需要一個shebang,因為它無論如何都是在當前shell中運行的。 然而,作為評論,它可能為人類讀者提供信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM