我已經一直使用以下格式的「for循環」在shell腳本:for循環在shell腳本不工作
例如:
for i in {11001..110039}
do
cp /home/usr/BB${i} /home/usr/
現在
,我得到了以下錯誤:
/home/usr/BB{11001..11039} does not exist
應該考慮的所有文件BB11001到BB11039,它總是這樣工作的,現在我不知道爲什麼我會得到這個錯誤。 有什麼幫助嗎?
我已經一直使用以下格式的「for循環」在shell腳本:for循環在shell腳本不工作
例如:
for i in {11001..110039}
do
cp /home/usr/BB${i} /home/usr/
現在
,我得到了以下錯誤:
/home/usr/BB{11001..11039} does not exist
應該考慮的所有文件BB11001到BB11039,它總是這樣工作的,現在我不知道爲什麼我會得到這個錯誤。 有什麼幫助嗎?
您可能使用/ bin/sh而不是/ bin/bash。
編輯#1(POC):
$ bash --version
GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ cat t.sh
#!/bin/bash
for i in {1..5}
do
echo $i
done
$ ./t.sh
1
2
3
4
5
$
並與/ bin/sh的:
$ cat t.sh
#!/bin/sh
for i in {1..5}
do
echo $i
done
$ ./t.sh
{1..5}
$
你可以提供你的bash版本(如果你真的使用bash)? – pah
GNU bash version 4.1.5 – infoSyStem
我不確定在哪個版本中引入了該語法,但v4.1.5似乎已經足以實現它了。 – pah
的語法應該是:
在對於i {11001..110039} ; do cp/home/usr/BB $ {i}/home/usr /; done
是語法對嗎?如果這是我的話;做 \t#陳述 done'? – scorpiozj
是的語法就像你寫的 – infoSyStem
那麼/ home/usr/BB11001是否存在? – scorpiozj