我有两个参数: linux用户组列表
groupsUsers=$(id -nG ${utilisateur})
所有linux用户组(linux组+应用程序)的列表
list_all_groups=$(curl -u GET "${edge_admin_nodes}_${port_http}"/applications/lists)
如何测试groupsUsers是否存在于list_all_groups或no中,在“否”的情况下,我将结果存储在变量中?
我做了这个解决方案,但我不确定这是否有效。
for groupUser in ${groupsUsers}
do
if ec
我想要生成一个排序列表与所有8位数字-从00000000到99999999。我输入了shell:
f() {
while IFS="" read -r line; do
for i in {0..9}; do
echo "$line$i";
done;
done
}
echo | f | f | f | f | f | f | f | f | tee result.txt | wc -l
反应是
bash: echo: write error: Interrupted system call
bash: echo: write
尝试在服务器列表中连接并执行一些命令,此脚本不执行第二步(AIX) SO=uname -s 对于$(cat maq) do中的服务器 case $SO in
Linux)
echo "Connecting in $server"
ssh $server
echo "my system is $SO"
"exit"
;;
AIX)
echo "Connecting in $server"
ssh $server
echo "my system is $S
在x86上执行交叉编译,目标平台是armhf。当我运行命令apt-get install -y gcc-arm-linux* g++-arm-linux*时,它会安装4.11.2.0版本,输出如下
g++-arm-linux-gnueabi is already the newest version (4:11.2.0-1ubuntu1).
g++-arm-linux-gnueabihf is already the newest version (4:11.2.0-1ubuntu1).
gcc-arm-linux-gnueabi is already the newest vers
我需要一些代码来检查,如果包的列表是安装的。这个检查应该适用于每个linux发行版(Fedora、Arch-Linux、Debian、RedHat等)。
实际上我的脚本是这样的吗:
#!/bin/bash
# At first check, if all needed softwares are installed
declare -a NEEDED_SOFTWARE_LIST=(bash rsync wget grep telnet)
if [ -f /etc/debian_version ]; then
for SOFTWARE i
在linux上向文件输出巨大的文本(约500 KB)时很难做到这一点。文本包含空格、特殊字符和其他.获取错误/bin/sh :参数列表太长
#!/bin/bash
txt="---huge text separated by line and containing special characters---"
echo $txt
或
#!/bin/bash
txt="---huge text separated by line and containing special characters---"
echo $txt >> filename.tx
我有一个简单的bash脚本
#!/bin/bash -x
for line in `tail /home/user/line`
do
echo $line
done
但是不知道为什么它会回响所有的单词,而不是下面的每一行都是输出。
++ tail /home/user/line
+ for line in '`tail /home/user/line`'
+ echo Linux
Linux
+ for line in '`tail /home/user/line`'
+ echo is
is
+ for line in '`tail
我想检查一个软件的列表,如果它已经安装或没有安装。如果没有,则应该显示它,脚本应该中止/退出。如果我只执行一次脚本,输出应该如下所示:
wget is not installed
telnet is not installed
目前的情况如下:
wget is not installed
再次执行脚本..。
telnet is not installed
如果未安装当前检查的软件,当前脚本将检查已安装的软件并中止/存在。这不太好,因为您必须多次运行脚本才能识别和检查是否安装了每个软件:
LINUX_DISTRIBUTATION=$(grep -Eo "(Debian
我有一个交互式脚本,应该以非交互的方式传递一些值。
交互式脚本使用“PS3”变量打印“选项列表”
PS3='Select the platform to use:'
输出如下图所示
echo 'Linux Build System initializing'
1) Linux PC based
2) ABC 1
3) XYZ 4
Select the platform to use: <waits for user input>
我想把这个值传递给PS3提示符。有什么帮助或建议吗?
我在linux环境中有以下shell脚本,其中arr具有git repo路径列表,当我尝试运行此脚本时,我通过第3行进入该路径,但我无法获取最新的提交ID并将其保存在变量中,这段代码中遗漏了什么以及如何在变量"commit_ID“中获取提交ID。 for i in "${arr[@]}"
do
cd $i
echo $i
commit_ID = git log -1
echo $commit_ID
done
我想检查主机名,以确保它们符合Bash Shell中的标准命名约定。
假设主机名是ab-cde-01
wolf@linux:~$ h='ab-cde-01'
wolf@linux:~$ echo $h
ab-cde-01
wolf@linux:~$
我一开始就构建了if else循环,它运行得很好。
wolf@linux:~$ if [ $h = 'ab-cde-01' ]; then
> echo $h is a valid name
> else
> echo $h is an INVALID name
> fi
ab-cde-01
在linux脚本中,我希望有两个参数列表:一个是以单个破折号开头的参数,另一个是以双破折号开头的参数列表。例如:
script -a 1 --b=3 -c 7 --d=8
然后它可以在两个组变量中返回它们:
group1 : -a 1 -c 7
group2 : --b=3 --d=8
我知道$@保存了所有参数的列表。我不知道是否应该迭代它们并使它们变得不同,或者有更简单的解决方案。这是我的尝试:
g1=""
g2=""
for i in $@; do
echo $i
if [[ $i == --* ]]; then
g1=