似乎什麼是與此代碼653-401不能重命名在shell腳本中使用的MV
#/usr/bin/ksh
RamPath=/home/RAM0
RemoteFile=Site Information_2013-07-11-00-01-56.CSV
cd $RamPath
newfile=$(echo "$RomoteFile" | tr ' ' '_')
mv "$RemoteFile" "$newfile"
錯誤我運行該腳本後得到了這個問題:
MV網站Information_2013-07-11- 00-01-56.CSV 至:653-401無法重命名站點信息_2013-07-11-00-01-56.CSV 路徑名中的文件或目錄不存在。
該文件存在於該目錄中。我也在變量中加了雙引號。上面同樣的錯誤。
oldfile=$(echo "$RemoteFile" | sed 's/^/"/;s/$/"/' | sed 's/^M//')
newfile=$(echo "$RomoteFile" | tr ' ' '_')
mv "$RemoteFile" "$newfile"
'「$ RomoteFile」'?? – shellter
在'#/ usr/bin/ksh'下面的一行中添加'set -u'並重新運行你的例子。 shell會用'-ksh:RomoteFile:parameter not set'作出響應 –
問題的關鍵是由於拼寫錯誤的變量,字符串「$ newfile」是空的。用'ksh -x script'運行腳本來查看每行是如何執行的。 –