将命令分配给变量的正确方法是什么。 a.k.a我该如何使用引号逗号以及如何将它分配给变量,所以命令是最新的?例如
我在家/桌面 我指定变量
b=`pwd`
echo "$b" // home/desktop
但是当我更改目录
时cd games
pwd // home/desktop/games
echo "$b" // home/desktop
它没有更新。我也想做像
这样的事情g="-l"
ls $g
有可能吗?
答案 0 :(得分:1)
变量永远不会自动更新,您必须重新分配它们,即
b=`pwd`
echo "$b" // home/desktop
cd games
pwd // home/desktop/games
b=`pwd`
echo "$b" // home/desktop/games
至于你的第二个问题,我认为只能使用eval
:
g=" -la"
eval "ls"$g
非常小心写一些可能危及安全性的东西非常容易,事实上大多数人(包括我自己!)会强烈建议你永远不要使用eval
,除非所有其他人都有失败。
考虑上面的代码仅用于演示目的,在任何情况下都不能用于生产系统。
答案 1 :(得分:0)
b
仅在您运行第一个命令时设置(将pwd
的输出分配给b
,它不会将这些项目链接在一起(以便每次都设置b)有一些方法(在你的机器上做man bash
)(例如,shell变量$PWD
包含这些信息。
到你的第二个问题,是的,你可以这样做,但这是一个很好的方法,所以它是使用alias
。因此,alias ll='ls -l'
在您的系统上创建一个命令,当您输入ls -l
ll
答案 2 :(得分:0)
我认为你在使用别名分配变量时感到困惑。 分配变量意味着您将命令的结果存储在变量中 这个命令做什么
b=`pwd`
正在运行pwd
并将答案存储在变量b中。
和别名意味着为某些命令提供不同的名称。因此,无论何时运行b,运行alias b pwd
都会使其运行pwd