gpt4 book ai didi

linux - 如何在 bash 中将命令和选项存储在单独的变量中

转载 作者:太空宇宙 更新时间:2023-11-04 04:25:01 25 4
gpt4 key购买 nike

我正在尝试创建一个 bash 脚本,该脚本要求一个目录,然后要求选项(都使用对话框),但我似乎无法让它工作。

如果目录是 $directory 并且选项保存为 $options 我假设命令是:

ls $options $directory

但到目前为止这还没有奏效。该命令失败,因为它尝试将选项作为目录运行。部分问题似乎是 list 中的输入带有双引号,但我不确定如何删除它们。另外,如果我运行:

ls“-A”〜

然后命令运行正常,但是通过 bash 脚本(并且我使用调试器检查过),完全相同的行将失败,无论是使用变量还是作为硬编码行。

我是否遗漏了一些明显的东西?如果有帮助的话,我可以发布我使用过的实际代码。

最佳答案

看起来你必须去掉“”。你可以这样实现:

options3=${options3:1}
options3=${options3%?}

options3=`eval echo $options3`
<小时/>
#!/bin/bash

directory=$2
options=$1
options2="-l"
options3="\"-l\""

# correct
#echo "options: $options"
#ls $options $directory

#echo
#echo

# correct
#echo "options: $options2"
#ls $options2 $directory

#echo
#echo

# incorrect
# echo "options: $options3"
# ls $options3 $directory

# correct
options3=${options3:1}
options3=${options3%?}
echo "options: $options3"
ls $options3 $directory

# correct
options3=`eval echo $options3`
ls $options3 $directory

关于linux - 如何在 bash 中将命令和选项存储在单独的变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9855295/

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