gpt4 book ai didi

shell - 在 Shell 编程中遍历文件中的命令列表

转载 作者:行者123 更新时间:2023-12-05 00:43:43 26 4
gpt4 key购买 nike

我有一个包含 unix 命令列表的文件,例如“ls -la/etc/passwd”。我想遍历这个命令列表,并采取适当的行动。

目前,我的代码是这样的:

#!/bin/bash
clear
for cmds in `cat /tmp/cmd`
do
if [ $cmds ] ; then
echo $cmds;
fi
done

但是,我得到的是一个输出,其中命令被分解为不同的行,例如
ls 
-la
/etc/passwd
ls
-la
/etc/shadow

并不是
ls -la /etc/passwd
ls -la /etc/shadow

有任何想法吗?

最佳答案

在你的 for 循环之前添加这个:

IFS='
'

或者在 Bash 中:
IFS=$'\n'

IFS 包含用于将输入拆分为字段的字符列表;它默认包含空格、制表符和换行符,这就是您得到错误行为的原因。将其设置为换行符只会在换行符上拆分,这正是您想要的。

关于shell - 在 Shell 编程中遍历文件中的命令列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/745820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com