Shell 脚本

Shell 脚本

我们有一个 shell 脚本,它应该从文件中读取行,其中文件内容是文件名,我们需要找到这些文件名的路径并复制到不同的目录。在这里我们编写了下面的 shell 脚本,每次脚本的行为都不同。一次 while 循环只读取一行并退出。在第二个例子中,locate 命令对文件的第一行工作正常,而文件中的第二行不提供输出,它给出一个空白输出

Shell 脚本

#!/usr/bin/ksh
file="test.txt"
while IFS= read -r line
do
    # display $line or do somthing with $line
        echo "$line"
        fileloc=`locate "$line"`        
        i=`echo $?`
    if [ $? != 0 ]
    then
        echo "Unsuccessful" 
    else              
        echo $fileloc 
        cp $fileloc /home/user/PO_AUDIT
        echo "Successful"  
    fi     
done <"$file"

test.txt(以下是存储在我们服务器中的文件名)

11687892
11687893

答案1

为什么 IHS= 在这个地方?

如果该脚本需要 IFS,你可以考虑类似

OLD_IFS=$IFS
IFS=
... your script
IFS=$OLD_IFS

脚本的开头如下:

#!/usr/bin/ksh
file="test.txt"
while IFS= read -r line
do

相关内容