标签: ash

什么$?在shell脚本中$ 0 $ 1 $ 2是什么意思?

我经常遇到$? $0 $1 $2 etc....shell脚本,我知道的是$?返回最后一个命令的退出状态

echo "this will return 0"
echo $?
Run Code Online (Sandbox Code Playgroud)

但其他人做了什么?他们叫什么,还有更多吗?也许就像$ 3 $ 4 $ 5 ...

bash shell ash

71
推荐指数
2
解决办法
23万
查看次数

linux shell支持列表数据结构吗?

这个问题与shell支持集不一样吗?

我知道很多脚本语言支持列表结构,比如python,python,ruby和javascript,那么linux shell呢?

shell支持这样的语法吗?

for i in list:
do
     print i
done
Run Code Online (Sandbox Code Playgroud)

我首先要初始化一个列表,例如:

ListName = [ item1, item2, ..., itemn ]
Run Code Online (Sandbox Code Playgroud)

然后迭代它

在编写shell脚本时可能吗?

linux bash shell ash

49
推荐指数
2
解决办法
13万
查看次数

如何在bash字符串中添加新行?

\nshell字符串中不考虑新行

root@toto:~# str="aaa\nbbbb"
root@toto:~# echo $str
aaa\nbbbb
Run Code Online (Sandbox Code Playgroud)

预期结果:

root@toto:~# echo $str
aaa
bbbb
Run Code Online (Sandbox Code Playgroud)

如何在字符串中添加新行?

linux bash shell sh ash

32
推荐指数
1
解决办法
7万
查看次数

如何让/ etc/profile在Alpine/Docker中自动运行

如何/etc/profile以交互方式启动Alpine Docker容器时自动运行?我已经在aliases.sh文件中添加了一些别名并将其放入/etc/profile.d,但是当我使用启动容器时docker run -it [my_container] sh,我的别名不活动.我. /etc/profile每次都必须从命令行手动输入.

是否需要一些其他配置/etc/profile才能在登录时运行?我在使用~/.profile文件时也遇到了问题.任何见解都表示赞赏!

编辑:

根据VonC的回答,我拉动并运行了他的示例ruby容器.这是我得到的:

$ docker run --rm --name ruby -it codeclimate/alpine-ruby:b42
/ # more /etc/profile.d/rubygems.sh
export PATH=$PATH:/usr/lib/ruby/gems/2.0.0/bin
/ # env
no_proxy=*.local, 169.254/16
HOSTNAME=6c7e93ebc5a1
SHLVL=1
HOME=/root
TERM=xterm
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
/ # exit
Run Code Online (Sandbox Code Playgroud)

虽然该/etc/profile.d/rubygems.sh文件存在,但是当我登录并且我的PATH环境变量没有被更新时它没有被运行.我使用了错误的docker run命令吗?还缺少什么?有没有人得到~/.profile/etc/profile.d/文件与Docker上的Alpine一起工作?谢谢!

sh ash docker alpine-linux

25
推荐指数
4
解决办法
2万
查看次数

将cat输出保存到变量时,将删除所有换行符

我有以下文件

linux$ cat test.txt
toto
titi
tete
tata
Run Code Online (Sandbox Code Playgroud)

将cat输出保存到变量中将丢弃换行符

linux$ msgs=`cat test.txt`
linux$ echo $msgs
toto titi tete tata
Run Code Online (Sandbox Code Playgroud)

如何在变量中保存包含换行符的输出?

linux bash shell ash

14
推荐指数
1
解决办法
8788
查看次数

如何反转shell字符串中的单词列表?

我有一个字符串中的单词列表:

str="SaaaaE SeeeeE SbbbbE SffffE SccccE"
Run Code Online (Sandbox Code Playgroud)

我想扭转它以获得

"SccccE SffffE SbbbbE SeeeeE SaaaaE"
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做ash

linux shell awk sed ash

14
推荐指数
6
解决办法
2万
查看次数

Android adb shell - ash还是ksh?

Android在线文档Android Debug Bridge说"Adb提供了一个灰壳".果然,如果我adb shell去AVD模拟器,我会得到灰烬,这基本上是一个简化的Bourne shell.

但是,如果我连接到几个远程设备,一个是HTC电话,另一个是华硕Transformer Prime平板电脑,它们都有一个版本的Korn shell,它提供:KSH_VERSION='@(#)MIRBSD KSH R39 2010/08/24'.虽然MIRBSD KSH不是一款成熟的AT&T Korn外壳,但它仍然比灰烬强大得多.

模拟器正在运行Jelly Bean,两个设备都在使用ICS.再做一点挖掘,看起来像是在姜饼中的灰烬,而在Honeycomb中则是mirbsd ksh.

那么,有人可以确认Android在线文档是错误的,并且模拟器运行的是过时的shell吗?还是供应商正在实施自己的?

android ksh adb ash

10
推荐指数
1
解决办法
4002
查看次数

“/path/file/..”如何符合POSIX?

我想将当前目录更改为 shell 脚本到包含特定常规文件的目录中。我发现以下技巧适用于mkshbusybox sh

path=/path/to/regular/file
cd $path/.. 
Run Code Online (Sandbox Code Playgroud)

但不是在 GNU Bash 中:

bash: cd: /path/to/regular/file/..: Not a directory
Run Code Online (Sandbox Code Playgroud)

这个技巧不兼容posix,还是Bash太迂腐?

bash posix cd sh ash

10
推荐指数
1
解决办法
218
查看次数

如何从灰壳重新启动?

如何从灰壳重新启动?

我有一个Ubuntu系统,由于某种原因目前是砖砌的(与这个问题无关),这意味着我启动了一个BusyBox灰壳.但是exit命令会蹲下,重置是无关紧要的.必须有比电源按钮更好的重启方式,对吗?

busybox ash

9
推荐指数
3
解决办法
3万
查看次数

如何在POSIX sh字符串中替换"/"

要替换bash字符串中的子字符串,str我使用:

str=${str/$pattern/$new}
Run Code Online (Sandbox Code Playgroud)

但是,我现在正在编写一个将被执行的脚本ash.

我有一个包含的字符串'/',我想使用上面的语法来替换'/'我的字符串,但它不起作用.

我试过了:

str=${str///a}
str=${str/\//a}
str=${str/'/'/a}
Run Code Online (Sandbox Code Playgroud)

但它们不起作用

我怎么解决这个问题?

linux string shell ash

9
推荐指数
1
解决办法
2788
查看次数

标签 统计

ash ×10

shell ×6

bash ×5

linux ×5

sh ×3

adb ×1

alpine-linux ×1

android ×1

awk ×1

busybox ×1

cd ×1

docker ×1

ksh ×1

posix ×1

sed ×1

string ×1